为什么抽象类更好?

时间:2014-07-13 14:25:48

标签: c# oop inheritance abstract-class

我知道遗产中存在抽象类,我们不能从中获取实例。好。我写了一个不抽象的类。它的名字是A类。我继承了其他一些类。它们是B和C类。

问题是这样的:为什么我必须把A类作为抽象?无论如何,普通类可以满足继承的要求。抽象类的优点是什么?

感谢。

2 个答案:

答案 0 :(得分:1)

首先,你提到了其中一个优点,你不能创建该类的实例,并且在明确地不想创建它的实例时使用抽象。 例如,你的B和C类共享一些字段或方法,现在你创建一个包含这些方法和字段的抽象类,但同时这些方法不构成任何逻辑组,这就是为什么我们没有任何实例那个特定的类,因此我们声明它是抽象的。

你可以将它声明为一个普通的类,没有复杂的错误,但是这不符合OOP的规则,因为那时任何人都可以创建一个多余且不必要的类的实例。

在OOP中,类的要点是收集公共特征/方法/字段并在对象名称下创建它们,抽象类不是我们想要与B和C类分开使用的东西(例如)。 希望有所帮助。

答案 1 :(得分:-2)

摘要可以用filoe来强制重新实现类函数。

它也可以用一个通用的接口(Polymorphism)将各种继承类存储到一个单独的容器中(list,dict tree ...)