繁体   English   中英

为什么我们不能在没有匿名类方法的情况下在java中实例化接口或抽象类?

[英]Why can't we instantiate an interface or an abstract class in java without an anonymous class method?

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

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

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

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM