接口

接口(interface)

1)特点

①接口是一个特殊的抽象类,本质就是只有抽象方法和静态常量的抽象类。
②接口中所有的方法都默认是公开的抽象方法。
③所有的属性默认是公开的静态常量(static final)

在这里插入图片描述
接口中的所定义的属性都是静态常量,既然是常量就要对其进行初始化。

④通过一个类实现接口来使用接口中所定义的抽象方法。
⑤一个类实现(implement)一个接口要实现接口中的所有抽象方法。

在这里插入图片描述
接口:

package Review.Interfaces;

public interface IAnimal {
	
	int age = 10;
	void run();
	void eat();
	void sleep();	
}

实现类:

package Review.Interfaces;

public class Dog implements IAnimal{

	@Override
	public void run() {
		System.out.println("Dog---run");
	}

	@Override
	public void eat() {
		System.out.println("Dog---eat");
	}

	@Override
	public void sleep() {
		System.out.println("Dog---sleep");
	}

}
⑥接口可以被继承,但抽象类和普通类不能继承接口(接口只能继承接口)。

在这里插入图片描述

⑦一个类可以实现多个接口(多个接口中方法不能发生冲突(非重载方法)),一个类实现多个接口的同时还可以继承一个类(先继承后实现),一定程度上解决java中的单一继承问题。

2)使用

以多态的方式使用接口
①方法的参数类型一般是接口引用类型(接收当前接口的所有实现类)。
②方法的返回值类型一般是接口引用类型。
③创建一个实现类对象时,也会使用接口类型去接收实现类对象。

接口:

package Review.Interfaces;

public interface IAnimal {

	void run();
	void eat();
	void sleep();
}

实现类Dog:

package Review.Interfaces;

public class Dog implements IAnimal{

	@Override
	public void run() {
		System.out.println("Dog---run");
	}

	@Override
	public void eat() {
		System.out.println("Dog---eat");
	}

	@Override
	public void sleep() {
		System.out.println("Dog---sleep");
	}

}

实现类Cat:

package Review.Interfaces;

public class Cat implements IAnimal{

	@Override
	public void run() {
		System.out.println("cat----run");
		
	}

	@Override
	public void eat() {
		System.out.println("cat----eat");
	}

	@Override
	public void sleep() {
		System.out.println("cat----sleep");
	}
	
	
}

测试类:

package Review.Interfaces;

public class Test {
	
	public static void main(String[] args) {
		
		IAnimal Dog = new Dog();
		IAnimal Cat = new Cat();
		
		printKinds(Dog);
		printKinds(Cat);
	}
	public static void printKinds(IAnimal a) {
		
		a.run();
		a.eat();
		a.sleep();
		
	}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值