接口:完全抽象的类(抽象类的抽象类 )
接口中只存在抽象方法和常量
接口中的方法也只能是 public abstract修饰
Java是单继承,但是接口可以继承多个接口(单继承 多实现)
接口不能有构造方法,抽象类可以有。
接口不能有方法体,抽象类可以有。
接口不能有静态方法,抽象类可以有。
在接口中凡是变量必须是publicstatic final,而在抽象类中没有要求。
抽象类和接口中都不能有静态的抽象方法
静态和抽象不能同时修饰一个方法
接口是强制性的,他的所有方法都要实现
但是抽象类不是
比如说一个接口,你只用到其中的一两个方法,可是如果直接实现接口需要实现里面的五个方法,这时候你可以先让抽象类实现接口,然后你的类继承接口,就不需要都实现接口的方法了
而且接口的抽象层次要更高,是一种契约,抽象类是提供了很多的方法,给你用,没有强制性
只有接口可以被实现
接口可以继承接口,但不能实现接口
普通类可以实现接口,但不能实现抽象类
抽象类可以实现接口,但不能继承接口
继承 | 被继承 | 实现 | 被实现 | |
接口 | 接口 | 接口 抽象类 普通类 | 无 | 抽象类 普通类 |
抽象类 | 接口 抽象类 普通类 | 抽象类 普通类 | 接口 | 无 |
普通类 | 接口 抽象类 普通类 | 抽象类 普通类 | 接口 | 无 |