为什么可以';我们在java中实例化一个接口或抽象类,而不使用匿名类方法吗?

为什么可以';我们在java中实例化一个接口或抽象类,而不使用匿名类方法吗?,java,class,interface,abstract,Java,Class,Interface,Abstract,我知道,除了使用匿名类方法,我们不能在java中实例化接口或抽象类,但它背后的原因是什么?你不能实例化接口或抽象类,因为它会违反面向对象的模型 接口代表契约——承诺接口的实现者能够完成所有这些事情,履行契约 抽象类是一个类似的概念,因为它们代表一个未履行的契约,一个能够做事情的承诺,不同的是接口定义了一些函数或字段,但在使用之前需要填充 简单地说,在一个好的面向对象程序中,您永远不应该想实例化一个抽象类或接口。如果你这样做,设计可能是错误的 (匿名类实际上是非抽象实例化,只是不需要给它们命名,所

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

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

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

抽象类是一个类似的概念,因为它们代表一个未履行的契约,一个能够做事情的承诺,不同的是接口定义了一些函数或字段,但在使用之前需要填充

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


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

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

  • 接口
    没有实现任何方法,因此没有必要实例化它,因为调用方法时“什么都不会发生”
  • Abstract
    类可以有
    Abstract
    方法声明,这类似于没有实现的接口方法

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

你的接口有代码可供使用吗?可能会澄清,没有人会使用接口。至少对你来说是这样,对我来说太棒了+1.