接口就是给出一些没有实现的方法,封装到一起,到某个类要使用的时候,再根据具体情况把这些类写出来
语法名:
interface 接口名{
属性;
方法;(可以有抽象方法,默认实现方法,静态方法)
}
class 类名 implements 接口名{
自己的属性和方法;
必须实现接口中的抽象方法
}
接口的注意事项和使用细节:
1、接口不能被实例化
2、接口中的所有方法都是public方法,接口中的方法可以不用abstract修饰,因为都已经自动修饰了 如写了void a();实际上为abstract void a():
3、一个普通类实现接口,就必须将该接口的所有方法都实现 (可以使用alt+enter来快捷实现) 并且该普通类可以直接使用接口中的属性
4、抽象类实现接口,可以不去实现抽象类中的方法
5、一个类可以同时实现多个接口 示例:class A implements a ,b;其中a和b各为一个接口
6、接口中的属性都是public static final 的,因此接口中的属性的访问形式是接口名.属性名
7、接口不能继承其他的类,但是可以继承多个别的接口 如interface a extends A,B;
8、接口的修饰符只能是public 或者 默认
如果子类需要扩展功能,可以通过实现接口的方式扩展,可以理解为实现接口是对java单继承机制的一种补充
接口的多态特性:接口类型的变量可以指向实现了该接口的对象实例。
Usbinterface usb ,即可以接收手机对象,又可以接收相机对象,就体现了接口多态
例:class Phone implements Usbinterface{};则可以用Usbinterface usbinterface =new phone();
接口的多态传递:
设IG和IH分别为两个接口,并且teacher类实现了IG接口,如果IG继承IH接口,那么就相当于teacher类也实现了IH接口 (接口之间可以继承)