1、接口的引出:发现没有继承关系的类也能共享行为
2、接口不是类,类描述对象的属性和行为,但是接口只关注实现的行为
3、当我们发现有行为在多个没有继承关系的类中共享,我们要把它抽取到接口中,而不是写到父类中
4、接口关键字:interface
5、接口的属性必须是公共、静态、常量属性public+static+final(就算不写这三个关键字也是默认为是这种情况)
说明接口的关注点不在属性身上
6、接口不能有构造(接口不能产生对象)
7、接口的行为只能是公共、抽象的public+abstract+方法名(就选不写也算默认公共、抽象)
说明接口的的丰富度和关注点是在行为上的,
8、在JDK1.7.2以上的版本,允许接口写实现了的方法,但是必须加上default关键字
9、接口的意义:让没有继承关系的类共享这些行为,各有各的实现
10、类实现接口使用implements关键字,并且重写接口中的抽象方法
11、如果一个类实现一个接口,但不能实现它的所有抽象方法,那么这个类一定是抽象类
12、一个类可以在继承父类的同事实现接口、一个类可以实现多个接口
13、接口可以继承接口,而且是多继承(同样使用extends关键字),类可以实现接口,也是多实现
14、在写接口的时候我们尽量定义小接口(接口隔离原则)
15、接口的引用可以指向实现类的引用
如果没有实现接口,但是也有同样的行为,也不能用接口的引用去指向它的对象
接口和抽象类的区别:
接口:定义语法:interface关键字 、抽象方法可以不写abstract关键字,不能有变量属性,属性只能是静态,没有构造、可以有实现的方 法(在JDK1.7.2以上的版本,允许接口写实现了的方法,但是必须加上default关键字)、子接口可以用extends继承父接口
使用语法:用实现类+implements去实现
设计上:附属添加的写到接口上,接口尽量写小接口(隔离)