接口是常量值和方法定义的集合,是一种特殊的抽象类,可以继承多个接口。例如:Interface3 Extends Interface0, Interface1, interface……。
java接口解析如下:
在Java中,定义一个接口的形式如下:
[public] interface InterfaceName {
}
接口中可以含有变量和方法。但是要注意,接口中的变量会被隐式地指定为public static final变量,而方法会被隐式地指定为public abstract方法且只能是public abstract方法,并且接口中所有的方法不能有具体的实现、
也就是说,接口中的方法必须都是抽象方法。
要让一个类遵循某组特地的接口需要使用implements关键字,具体格式如下:
class ClassName implements Interface1,Interface2,[…]{
}
可以看出,允许一个类遵循多个特定的接口。如果一个非抽象类遵循了某个接口,就必须实现该接口中的所有方法。对于遵循某个接口的抽象类,可以不实现该接口中的抽象方法。
java接口可以多继承。
interface C extends A, B {}是可以的。
一个类可以实现多个接口:class D implements A,B,C{}。
但是一个类只能继承一个类,不能继承多个类:class B extends A{}。
在继承类的同时,也可以继承接口:class E extends D implements A,B,C{}。
接口的使用原则如下:
1、接口必须要有子类,但此时一个子类可以使用implements关键字实现多个接口。
2、接口的子类(如果不是抽象类),那么必须要覆写接口中的全部抽象方法。
3、接口的对象可以利用子类对象的向上转型进行实例化。
extends和implements的不同
对于class而言,extends用于(单)继承一个类(class),而implements用于实现一个接口(interface)。
interface的引入是为了部分地提供多继承的功能。在interface中只需声明方法头,而将方法体留给实现的class来做。这些实现的class的实例完全可以当作interface的实例来对待。