抽象类VS接口

共同点:

1、代表系统的抽象层

2、都不能被实例化

3、都能包含抽象方法:

不同点:

1、在抽象类中可以为部分方法提供默认实现(有利于代码重用;也有利于扩展功能:比如我要增添一个功能的时候,我只需要再在父类里面增加一个普通方法就好了,所有的子类都不需要改变。),而接口中只能包含抽象方法(同时接口一旦对外公布了,那就代表我有这个功能,那他就必须是稳定的,不能随意地去更改。一旦更改,该接口下面的一片实现类都得改。)。

2、一个类只能继承一个直接的父类(原因是:如果允许一个类继承多个父类的话,在动态绑定时会非常复杂或者出错),但可以实现多个接口(java虚拟机不会和接口绑定,而是和接口的实现类绑定)

3、已存在的继承树,可以方便的抽取接口,但是抽取抽象类不容易

使用原则:

1、接口做系统与外界交互的窗口(接口提供服务)

2、接口本身一旦制定,就不允许随意修改

3、抽象类可完成部分功能实现,还有部分功能可作为系统的扩展

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 引言 接口和抽象类是面向对象编程(OOP, Object Oriented programming)中两个绕不开的...
    雪飞鸿阅读 3,332评论 0 2
  • 更多 Java 基础知识方面的文章,请参见文集《Java 基础知识》 抽象类 用 abstract 修饰类名 不能...
    专职跑龙套阅读 1,868评论 0 0
  • 抽象类和接口的区别在于使用动机。使用抽象类是为了代码的复用,而使用接口的动机是为了实现多态性。
    Wide_Star阅读 1,031评论 0 0
  • 很多时候,为了坚持自己的观点 我们往往会很固执 面对问题时一定要争个赢 逞一时之快 然而,往往最后损失的却是自己 ...
    叶子__阅读 4,681评论 0 0
  • 1、自已的基本情况 乌兰、蒙族人 、工商银行职员 、瑜伽教练型号反六一对一 2、成长经历 对童年的经历记忆不多,即...
    一头母狼阅读 1,859评论 0 2

友情链接更多精彩内容