【问题标题】:Using abstract classes and Interfaces使用抽象类和接口
【发布时间】:2010-02-28 18:29:06
【问题描述】:

如果我有三个班级

class A

class B extends A

class C extends A

使用抽象类或接口会给我带来任何类型的错误或影响我实现程序的方式吗?

【问题讨论】:

  • 视情况而定。你想做什么?
  • 你问这个的方式太模糊了,我几乎认为这不是一个真正的问题。阅读子类化、接口和抽象类,并尝试提出更具体的问题。

标签: java interface abstract-class


【解决方案1】:

除非您需要共享实现,否则偏爱接口。

如果您需要共享实现,请仔细考虑抽象类是否是实现此目的的正确方法。

继承是一个强大的工具,但很容易造成无法维护的混乱(我在这里犯了罪)。

但要回答您的问题 - 不,此设置中没有任何固有的东西会导致“错误”。

【讨论】:

    【解决方案2】:

    您通常应该尽可能选择接口。如果您为此使用类,Java 缺乏多重继承很快就会成为一个限制因素。

    【讨论】:

    • Java 允许对接口进行多重继承,如果您使用 AspectJ,您可以将方法的实现直接添加到接口。将两者放在一起,您将获得:多重实现继承。
    【解决方案3】:

    是的。抽象类用一种更短的重用实现方式来为同一对象提供多个接口的灵活性。

    除非您正在玩代码高尔夫,否则选择界面的灵活性通常是更好的选择。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-02-19
      • 2014-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-01
      • 1970-01-01
      相关资源
      最近更新 更多