【问题标题】:Why can't we instantiate an interface or an abstract class in java without an anonymous class method?为什么我们不能在没有匿名类方法的情况下在 java 中实例化接口或抽象类?
【发布时间】:2013-06-09 06:38:18
【问题描述】:

我知道,我们不能在java中实例化接口或抽象类,除非使用匿名类方法,但它背后的原因是什么?

【问题讨论】:

  • 你的接口有代码可以使用吗?

标签: java class interface abstract


【解决方案1】:

这是一个基本的解释,没有更深的概念。

  • Interface 没有实现任何方法,因此没有必要实例化它,因为调用方法时不会发生任何事情
  • Abstract类可以有abstract方法声明,就像没有实现的接口方法。

【讨论】:

    【解决方案2】:

    您不能实例化接口或抽象类,因为它们的某些方法可能没有任何定义。

    【讨论】:

    • 可能会澄清 none 将使用接口。
    【解决方案3】:

    您不能实例化接口或抽象类,因为它会违反面向对象的模型。

    接口代表契约——接口的实现者将能够做所有这些事情,履行契约的承诺。

    抽象类是一个类似的想法,因为它们代表了一个未履行的契约,一个能够做事的承诺,除了与接口不同的是,它们定义了一些功能或字段,但在使用之前需要填写。

    简单地说,在一个好的面向对象程序中,你永远不应该实例化一个抽象类或接口。如果你这样做了,那么设计可能是错误的。

    (匿名类实际上是非抽象实例化,只是它们不需要命名,因此它们看起来是“原始接口”,但实际上它们是没有名称的接口的实现。至少这是我的理解。)

    【讨论】:

    • 至少对你来说很好,对我来说很棒.. +1
    猜你喜欢
    • 2022-07-22
    • 1970-01-01
    • 2019-07-15
    • 1970-01-01
    • 2014-03-08
    • 1970-01-01
    • 2012-05-23
    • 1970-01-01
    相关资源
    最近更新 更多