接口和抽象类的异同
接口和抽象类的异同
今天来说说接口和抽象类的异同:
相同点:
都可以定义抽象方法,并且定义的抽象方法都需要被子类或者实现类重写
都不能实例化对象,接口需要赋值实现类对象,抽象类需要赋值子类对象
都可以定义public static 方法,public static final 常量
不同点:
定义方式不同:
抽象类用abstract class定义
接口用interface定义
意义不同:
抽象类是对事物更高级的封装
接口是对功能的实现
内容不同:
抽象类除了可以定义抽象方法之外,还能定义普通类能定义的所有方法
接口只能定义public abstract 抽象方法,public static final 常量,public static 静态方法(jdk8开始),public default 方法(jdk8开始)。
使用方式不同:
抽象类是被子类extends继承
接口是被实现类implement实现
支持继承的上限不同:
抽象类包括所有类都只支持单继承
接口支持多继承