跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 关于抽象类与接口
未分類
7 6 月 2020

关于抽象类与接口

关于抽象类与接口

資深大佬 : zxc1234 6

我的理解是:

抽象类是 is-a,接口是 has a,java 可以多继承,但是只能实现一个接口

一般在项目中如果多个类都有用到共同的方法( A ),并且不同类这个方法( A )的实现不同,我会抽象出一个抽象类

然后多个子类继承它,子类各自重写这个方法的逻辑(好像这边也可以用接口实现???)

当这些子类有共同的方法实现( B ),只能用抽象类,因为接口不能有方法实现。

但是 java8 支持接口方法实现,那么是不是除了类可以多继承,接口只能实现一个这个区别外

接口可以完全代替抽象类了?

谢谢~

大佬有話說 (11)

  • 資深大佬 : mreasonyang

    并不能完全替代抽象类啊,比如接口里搞定不了非静态属性,访问控制也没有。而且 default 方法的出现个人觉得更多的考虑是对接口功能的扩展而不是用来替代抽象类的。

  • 資深大佬 : zhazi

    可以多继承吗?只能实现一个接口吗?

  • 資深大佬 : zsdroid

    多继承单实现??我学了个假的 java 。

  • 資深大佬 : Uchiha0bito

    意义上还是有区别 一个强调继承 一个强调拓展功能

  • 資深大佬 : DoodleSit

    我学的是个假 java 。。。

  • 資深大佬 : namelosw

    用了 Scala 你就知道,这俩没区别. Scala 的 trait 该有的功能全有,就差个 constructor 今年 Scala 3 会加上.

    看起来有区别是因为 Java 实现的功能太少. 尝试跟你解释继承组合有区别的人都是基于 Java 实现,多大鞋多大脚自动脑补的…

    除了 Scala 像常见的 Python 也很少区分. 继承组合都可以用多继承流畅表达.

  • 資深大佬 : guangdao

    多继承单实现…兄弟学的怕不是 avaj 吧((

  • 資深大佬 : hippieZhou

    你可以这样理解:抽象类再抽象也是类,所以它规定了继承它的实例是什么,但接口是对行为的抽象,规定了继承它的实例能干什么;所以抽象类描述是什么,接口描述能干什么,:)

  • 主 資深大佬 : zxc1234

    @zhazi
    @guangdao
    @zsdroid
    @DoodleSit

    我错了,单继承多实现

  • 資深大佬 : jinzhongyuan

    这个问题 得 从 功能 和 语义 俩方面 来想

  • 資深大佬 : Jafee

    https://i.loli.net/2020/06/15/2qeCEyzGHujJfVY.png

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具