接口和抽象类的区别:
1 抽象类中有抽象方法和非抽象方法,所有当子类继承父类的时候,子类就可以直接把父类中的非抽象方法拿来用,不需要全部复写,就能创建对象
接口中全都是抽象方法,当子类实现接口时,必须把所有的抽象方法全部复写,才能创建对象进行实例化
既然抽象类那么轻松,那为什么还要接口呢?
2 因为java中不支持多继承,只能单继承,但是,接口可以被类多实现,也是对多继承不支持的转换形式,java支持多实现
不支持多继承的原因: 是因为父类当中的方法可能会重复,会导致子类调用此方法会出现问题
而支持多实现的原因: 是因为接口中的方法都是抽象的,没有方法体,可以让子类任意定义
一个类在继承一个类的同时还可以实现多个接口
这样更方便于对程序进行功能扩展
|