抽象和接口
抽象类:可以有抽象方法和普通方法;属性;构造方法(只能被子类调用)
-
抽象方法只有方法的声明,没有方法体
-
抽象类不能被实例化,只能被继承
-
修饰符只能是public 或 protected,默认为public
-
子类必须实现父类的抽象方法,除非子类也是抽象类
接口:只能有抽象方法(默认public abstract);静态常量属性
-
接口只有方法的声明,没有方法体
-
接口支持多继承
区别:
-
相同:
-
都不能被实例化
-
子类都必须实现接口或抽象类的方法
-
-
不同
-
接口只有定义,没有方法的实现(jDK8以后有default方法),接口除了定义,方法也可以是实现
-
继承关键字不同,接口是implement,抽象类是extends
-