任何人都可以广泛解释抽象类和接口吗?我从理论上知道这些,但我认为这对于实施来说还不够。我看到了很多关于这些的教程,但在我看来,没有抽象类我就可以完成我的工作,所以这就是为什么我需要使用抽象类。实际上,我想知道抽象和接口到底有什么用以及它有什么帮助。
理解这两种机制在编程中的作用确实很难教,因为在纸面上它们有很多相似之处,而在代码中则更是如此,具体取决于语言。您提出的问题可能会出现许多重复的引用,因为这是一个经常被问到的问题。但为了关注询问的前提,我会看看是否可以添加更多背景信息。
接口
一种在类之间声明公共相关属性和方法的方法。类定义可以继承其中的许多,并且由每个类声明所述接口的继承来实现成员和方法。
抽象类
与接口类似,抽象类声明共同的相关属性和方法,但是一个类只能继承一个抽象类,这是两者之间的主要定义特征(也是明显的)区别之一。由于这个特性,您经常会听到抽象类被称为基类(尽管任何类都可以是基类,只要它不是
sealed
或 final
)。其他一些与语言相关的差异包括能够定义静态、实例、受保护和虚拟(可以覆盖)方法。
正如您所看到的,这两种机制都有其用途,并且每种机制都有另一种机制所没有的东西。这意味着有时一个相关而另一个不相关,而有时需要两者同时发挥作用。