在java中不支持多继承只支持单继承,因此,java语言为了实现多继承就使用了接口来实现多继承。使用接口可以间接实现多继承,并且解决了C++中多继承的二义性问题。
接口中可以包含多个方法或者数据成员。但是,接口中的数据成员都是公用静态常量,方法是公用抽象方法。接口中不能有构造方法。定义接口的词必须是interface。
例如:
interface A
{
int NUM=1; //公用静态常量,关键字public .static.final一般省略
void function();//公用抽象方法,关键字public.abstract一般省略.
}
接口也可以用public修饰,这时这个接口其他包中的类也可以使用,但是一个源文件中只能有一个public接口或类,并且该接口或类的名称必须与文件名称相同。
接口中的方法都是公用的,实现这些方法时必须用修饰符public否则会因为实现这些方法时降低了权限而出现编译错误。当一个类实现了某接口,如果没有实现这个接口的全部方法时,这个类是抽象类,必须用abstract修饰。
java中,为了得到多继承的效果,允许一个类可以同时继承一个类和实现多个接口。此时父类必须是第一个列出的。
接口可以在原有的接口基础上定义子接口。一个接口可以同时继承多个子接口。例如:
interface A{}
interfaceB {}
interface C extends A,B{}