Java中不支持多重继承,而是使用接口来实现比多重继承更加强大的功能。
1.
接口是方法定义和常量值的集合。接口中的属性都是常量,接口中的方法都是没有方法体的抽象方法。接口定义的仅仅是实现某一个特定功能的一组对外接口和规范,并没有真正的实现某个具体的功能,这些功能的真正的实现是在该接口的实现类中。
interface前面的修饰符可以是public或者默认。接口中的域都是常量即使省略修饰符,仍然默认为public static final。接口中的方法都是抽象方法,不能有实现体,即使省略修饰符,仍然默认为public abstract。在实际使用中,一般都省略域和方法的修饰符。
接口之间可以使用extends进行继承,子类可以继承父类的所有属性和方法。需要注意的是一个接口可以有一个以上的父接口,相邻父接口之间使用逗号隔开,此时新的接口将继承所有父接口中的属性和方法。
2.
只有实现了接口的类的实例才可以赋值给接口对象。
如果实现某个接口的类不是抽象类的话,它必须实现指定接口的所有的抽象方法,即非抽象类中不能含有抽象方法。实现接口使用关键字“implements”。接口的抽象方法的访问权限都限制为public,在实现接口抽象方法的时候必须显示的使用public修饰符,否则会给出警告,表示缩小了接口中该方法的访问控制范围。一个类可以实现多个接口,相互之间使用逗号间隔。
3.
任何实现了某接口的类的实例都可以赋值给该接口类型的变量。