接口
当一个抽象类,如果抽象类中所有方法都是抽象的,那么我们就可以把它定义为一个接口,接口是对行为的抽象,类是对属性和行为的抽象。接口没有具体方法,也没有属性。
接口中可以定义常量。
接口也能继承接口,可以多级继承,也可以继承于多个父接口。
interface A{ @Override @Override @Override @Override |
接口的实现
关键字:implements
语法:class 类名 implements 接口名{}
一个类如果实现了接口,就必须要实现接口中所有的抽象方法。
接口在JDK1.8中的特性
接口可以定义静态的方法,用接口名打点调用。
可以选择性地实现接口中的方法,定义默认方法即可。语法: public default void 方法名(){}
接口被类实现的时候没有强制性,可以重写方法。
接口的好处
1.接口定义的是一种标准,可以使我们的代码分层开发,分模块开发。
2.降低代码的耦合度,提高代码的可扩展性和可维护性。
3.接口改进了单继承的局限。
接口和抽象类的区别
1.接口是行为的抽象。可以有静态方法,抽象方法和默认方法。抽象类可以有所有方法。
2.接口和抽象类都不能实例化,接口需要类来实现,然后通过类实例化;抽象类需要子类来继承,然后通过子类实例化。
3.抽象类智能单继承,接口可以多继承(jdk1.7),接口还可以多实现。
4.接口中的属性是static final类型的,抽象类中的属性跟普通类中的属性没有区别。
5.接口中的方法默认就是抽象的,不需要加abstract,抽象类中的抽象方法需要加上abstract。