目录
1.接口的定义
由于Java不支持多继承性,即一个类只能有一个父类。因此,单继承性使得Java变得简单,易于管理和维护。
接口使用关键字interface来声明,格式:interface 接口的名字。
例:
intrefance Animal{
//定义一个接口,名字为Animal
}
接口只能写常量,且为公共静态常量。所有接口体的常量都是static常量,访问权限一定都是public(允许省略public,final和static修饰符),所有的抽象方法的访问权限一定都是public(允许省略public,abstract修饰符)
例:
interface Print{
public final static int Max=100;//等价写法int Max=100;
public abstract void add();//等价写法void add();
public abstract float sum(float x ,float y);
}
//省略的部分系统会默认补充
2.接口的使用
一个类可以实现多个接口,类通过关键字implements声明自己实现一个或多个接口,如果实现多个接口,则用逗号隔开接口名,例如:
class A implements Printable,Addable;//Printable和Addable为两个接口
注意:类与类之间是继承,属于单继承,接口之间叫多继承,类与接口之间叫实现,且可以多实现。
如:Animal 的子类Dog类实现Eatable和Sleepable接口
class Dog extends Animal implements Eatable,Sleepable;
一个类在继承另一个类的同时还可以实现接口,此时extends关键字必须位于implements
关键字之前。
例如 :
class Dog extends canidae implements Animal{
//先继承再实现
}
注意:不能反过来,只能先继承再实现
3.abstract类与接口的比较
1.abstract类和接口都可以有abstract方法。
2.接口中只可以有常量,不能有变量;而abstract类中既可以有常量也可以有变量。
3.abstract类中也可以有非abstract方法,接口不可以。