【发布时间】:2013-06-09 06:38:18
【问题描述】:
我知道,我们不能在java中实例化接口或抽象类,除非使用匿名类方法,但它背后的原因是什么?
【问题讨论】:
-
你的接口有代码可以使用吗?
标签: java class interface abstract
我知道,我们不能在java中实例化接口或抽象类,除非使用匿名类方法,但它背后的原因是什么?
【问题讨论】:
标签: java class interface abstract
这是一个基本的解释,没有更深的概念。
Interface 没有实现任何方法,因此没有必要实例化它,因为调用方法时不会发生任何事情Abstract类可以有abstract方法声明,就像没有实现的接口方法。【讨论】:
您不能实例化接口或抽象类,因为它们的某些方法可能没有任何定义。
【讨论】:
您不能实例化接口或抽象类,因为它会违反面向对象的模型。
接口代表契约——接口的实现者将能够做所有这些事情,履行契约的承诺。
抽象类是一个类似的想法,因为它们代表了一个未履行的契约,一个能够做事的承诺,除了与接口不同的是,它们定义了一些功能或字段,但在使用之前需要填写。
简单地说,在一个好的面向对象程序中,你永远不应该实例化一个抽象类或接口。如果你这样做了,那么设计可能是错误的。
(匿名类实际上是非抽象实例化,只是它们不需要命名,因此它们看起来是“原始接口”,但实际上它们是没有名称的接口的实现。至少这是我的理解。)
【讨论】: