接口的规范:
接口之间可以继承(extends),接口之间不存在实现(implements)的关系,接口中不能有实现了的方法。
<修饰符>interface<接口名>{
<常量申明>
<抽象方法申明>
}
接口的特点:
1、Java接口中的成员变量默认都是public,static,final类型的(都可省略),必须被显示初始化,即接口中的成员变量为常量(大写,单词之间用”_”分隔)
2、Java接口中的方法默认都是public,abstract类型的(都可省略),没有方法体,不能被实例化
3、Java接口中只能包含public,static,final类型的成员变量和public,abstract类型的成员方法
4、接口中没有构造方法,不能被实例化
5、一个接口不能实现(implements)另一个接口,但它可以继承多个其它的接口
6、Java接口必须通过类来实现它的抽象方法
7、当类实现了某个Java接口时,它必须实现接口中的所有抽象方法,否则这个类必须声明为抽象类
8、不允许创建接口的实例(实例化),但允许定义接口类型的引用变量,该引用变量引用实现了这个接口的类的实例
9、一个类只能继承一个直接的父类,但可以实现多个接口,间接的实现了多继承.
多态的一种实现形式:用父类接受子类对象,用接口接受实现类对象。
例如:
//Person是父类 BlackMan是Person的子类
Person p = new BlackMan(); ①
/*
p只能调用Person类的方法,或者调用子类BlackMan中重写父类的方法
*/
----------
List l = new ArrayList(); ②
/*
list 只能调用ArrayList中实现了List接口中方法的方法。
*/