繁体   English   中英

通过将所有方法抽象为抽象类可以实现与接口相同的功能,为什么需要接口?

[英]Why do we need Interface when same thing as Interface can be achieved by making all methods abstract in an abstract class?

当我们已经有了Abstract类时,有人可以详细说明对Interface的需求吗?

如果考虑语法,则可以仅使用抽象类而不是接口来实现任何您想实现的目标,但是在语义上有所不同。 抽象类可以具有将在子类中继承的已实现方法,因此它可以具有已定义的行为,而接口只能具有已声明的行为。

在项目管理级别,有时领导者决定您应该编写声明,而您不应该执行它们。 在这种情况下,他们告诉您实现接口,并且他们知道只要您创建的东西是接口,所有方法都将被强制在实现该接口的类中实现。 另外,如果遇到抽象类,则可能要实现其一种方法,而又不知道不应在层次结构的该级别上实现它。 因此,接口实际上是一种好的方法,它可以确保声明某些行为,但未定义它们。

如果抽象类的子级共享许多常用的预定义功能,但仍在重要方面有所区别(因此需要抽象方法以及为什么无法实例化抽象类),则最好使用抽象类

继承只是实现该接口的类必须做什么的“契约”。

继承允许更大的多态性。

暂无
暂无

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

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