码迷,mamicode.com
首页 > 其他好文 > 详细

抽象类可否替代接口?

时间:2020-01-15 19:12:12      阅读:70      评论:0      收藏:0      [点我收藏+]

标签:class   特殊   运行   问题   继承   expand   and   block   实现类   

抽象类可否替代接口?

先说说抽象类和接口的相同和不同之处。

相同点

  1. 都是引用数据类型,不能直接创建对象。

  2. 都可以定义抽象方法,可实现运行时多态。

  3. 都具有传递性(继承)。

  4. 概念上都可以需被(子类/实现类)重写抽象方法(实现类叫“实现接口方法”)。

不同点

  1. 抽象类可以定义非抽象方法

    接口不能定义非抽象方法

  2. 类是单继承

    接口是多继承

  3. 子类是重写抽象类的方法。

    接口是实现接口的方法。

  4. 抽象类和子类解决模块内问题,高内聚。

    接口和实现类解决模块间问题,低耦合。

总结

接口是一种特殊的抽象类,比抽象类更加抽象。

不考虑多继承问题,我认为只有抽象方法的抽象类是可以代替接口的。

抽象类可否替代接口?

标签:class   特殊   运行   问题   继承   expand   and   block   实现类   

原文地址:https://www.cnblogs.com/CynthiaLin/p/AbstractClass-alternative-Interface.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!