美文网首页
面向对象:Java 接口VS抽象类

面向对象:Java 接口VS抽象类

作者: 阿猫阿狗Hakuna | 来源:发表于2022-03-07 21:44 被阅读0次

抽象类的特性

  • 不允许被实例化,只能被继承,不能new一个抽象类的对象出来;
  • 抽象类可以包含属性和方法。方法既可以包含实现,也可以不包含,不包含代码实现的方法叫做抽象方法;
  • 子类继承抽象类,必须实现抽象类中所有的抽象方法。

接口的特性

  • 接口不能包含属性(也就是成员变量);
  • 接口只能声明方法,不能包含代码实现;
  • 类实现接口时,必须实现接口中声明的所有方法;

两者区别

抽象类表示的是is-a的关系,而接口表示的是has-a的关系,表示具有某种功能。对于接口,还有一种叫法,称为协议(contract)。

抽象类和接口能解决的编程问题

1.抽象类是为代码复用而生的。多个子类可以继承抽象类中定义的属性和方法,避免在子类中,重复编写相同代码。
2.抽象类更多是为了代码复用,而接口更侧重于解耦。接口实现了约定和实现相分离,可以降低代码间的耦合性,提高代码可扩展性。

该用抽象类还是接口?

如果要表示is-a的关系,且为了解决代码复用问题,就用抽象类;
如果要表示一种has-a的关系,且是为了解决抽象而非代码复用问题,就可以使用接口。

抽象类是自下而上的设计思路,先有子类的代码重复,然后再抽象成上层父类;而接口正好相反,是一种自上而下的设计思路。编程时,一般先设计接口,然后再去考虑具体实现。

相关文章

  • 面向对象:Java 接口VS抽象类

    抽象类的特性 不允许被实例化,只能被继承,不能new一个抽象类的对象出来; 抽象类可以包含属性和方法。方法既可以包...

  • java抽象类和接口小记

    Java抽象类和接口小记 Java抽象类和接口实现了java的多态.多态是面向对象程序语言的核心,在项目开发过程中...

  • 第一天面向对象OOP

    java基础OOP第一天总结_12_03 1,继承2,抽象类3,接口4,多态 面向对象的继承问题 面向对象的抽象类...

  • Java 面向对象思想回答抽象类和接口的区别

    Java 面向对象思想回答抽象类和接口的区别 抽象类 含有abstract修饰符的class即为抽象类 abstr...

  • java 常见面试题总结

    java 基础 问题回答会附上链接 面向对象 面向对象的基本特征 接口和抽象类的区别 object的几个方法htt...

  • Java面向对象

    Java和iOS的面向对象大体上没有什么区别,有几点需要注意: 抽象类 接口类 多继承 重载 对象 接口 包

  • Kotlin入门学习(二)

    新的篇章 面向对象 面向对象-封装 面向对象-继承 面向对象-抽象类和多态 接口 委托和代理 by关键字 委托...

  • Java基础知识学习笔记

    总结打卡~内容包括:Java语言基础;面向对象特性;接口和抽象类;一些关键字;多态;异常;多线程;常用对象API;...

  • 第13讲 | 谈谈接口和抽象类有什么区别?

    典型回答 接口和抽象类是 Java 面向对象设计的两个基础机制。接口是对行为的抽象,它是抽象方法的集合,利用接口可...

  • 花旗银行Java面试

    1.解释面向对象2.Java三大特性3.接口和抽象类的区别4.接口可以继承接口么?可以5.throw和throws...

网友评论

      本文标题:面向对象:Java 接口VS抽象类

      本文链接:https://www.haomeiwen.com/subject/latorrtx.html