V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
ukipoi
V2EX  ›  问与答

Java8 接口可以提供默认实现了。那么接口可以相当于继承吗?

  •  
  •   ukipoi · 2019-06-24 11:18:42 +08:00 · 1612 次点击
    这是一个创建于 1972 天前的主题,其中的信息可能已经有所发展或是发生改变。

    现在再看《 Head First 设计模式》
    把继承改成默认实现的接口,是否满足 少用继承 的原则?
    我觉得默认实现的接口和继承好像没什么区别。

    4 条回复    2019-06-24 20:05:26 +08:00
    npdpx
        1
    npdpx  
       2019-06-24 11:42:50 +08:00
    主要是为了解决接口升级的问题。
    liuxey
        2
    liuxey  
       2019-06-24 11:47:13 +08:00
    这样不就可以有多重继承了吗?

    不过 Java 经历了这么多,一开始的设计者和现在的早已毫无关系,好用易用就行
    SoloCompany
        3
    SoloCompany  
       2019-06-24 12:06:37 +08:00
    默认接口只能定义 method 不能定义 field,这一点上和多继承不能等同
    Leammin
        4
    Leammin  
       2019-06-24 20:05:26 +08:00 via Android
    接口没有 field,所以不跟"少用继承"冲突。"少用继承"主要是因为继承破坏了类的封装性,而接口没有 field,因此不存在破坏封装性的情况。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1804 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 19ms · UTC 16:43 · PVG 00:43 · LAX 08:43 · JFK 11:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.