接口优于抽象类的情况

Jav*_*ser 6 java oop

请告诉我在Java中接口比抽象类更好的情况

Suj*_*jee 9

我认为你误解了接口和抽象类的真正含义.

接口是一种编程结构,您可以在其中定义要向公共模块或其他模块公开的功能/服务.您承诺提供某些功能或服务的合同,但隐藏实施以便在不影响合同的情况下更改实施.

抽象类是一个部分实现的类,除了作为具有实际意义的多个子类的父类之外,它没有任何实际意义.抽象类是特殊的父类,它为多个子类提供默认功能.由于没有合适的具体父类,因此它被创建为抽象.

在一个好的设计中,您应该始终创建一个界面.但抽象类是可选的.如果你不能找到一个具体的父类,创建一个抽象类,然后实现该接口为这些接口函数提供的默认实现(如果可能),否则将其标记为抽象函数,离开落实到子类.


Art*_*cto 6

  • 一个类可以实现多个接口,但它只能扩展一个抽象类.
  • 接口允许创建封装具体类的代理.这被框架广泛使用,以拦截对具体类的方法调用(例如,在执行方法之前启动事务或写入日志).


dby*_*rne 3

当您不需要提供任何默认实现时,请使用接口。

这是一个比较两者的很好的链接:Interface vs. Abstract Class