什么时候用接口?什么时候用抽象类?

来源:互联网 发布:上海矩阵化工有限公司 编辑:程序博客网 时间:2024/04/30 01:14

什么时候用接口?什么时候用抽象类?

接口相对于抽象类和实体类的好处.

实现多继承.

对于一种需求,发电机,然后分别有光能和风能发电机,最后又出来风能光能混合发电机.

如果使用抽象类,则因为JAVA不支持多继承而使,(风能光能混合发电机 instance 风能发电机)失效.而如果使用接口则没有此问题.

 

 

抽象类相对于接口的好处

抽象类中可以包含一些实现,即一些非abstract方法,而接口中所有的方法都是抽象的.所以抽象类可以将子类中共同的逻辑向上提,在抽象类中实现,在一定程度上实现代码的复用.

 

抽象类和接口相对于实体类的好处.

通过方法的覆盖来实现多态,也就是运行期绑定.

 

总结

接口是用来定义行为的,抽象类是用来实现行为的,实体类是用来执行行为的.

 

多重继承

支持抽象函数

支持具体实现

允许创建实体

Interface

Y

Y

N

N

Abstract class

N

Y

Y

N

class

N

N

Y

Y

 

 

0 0