为什么需要抽象类?

时间:2015-12-11 08:56:48

标签: oop

当我们能够通过普通类实现继承功能时,有人能告诉我抽象类的重要性吗?

谢谢, Prashant N

3 个答案:

答案 0 :(得分:0)

抽象类无法实例化,因此在您想要强制存在具体实现时使用它。 Ej是DDBB中所有对象的基类,可以声明为:

abstract class Identifiable{
    public int Id {get; set;}
}

然后,模型中的每个类都被强制使用Id字段,而同时没有人可以使用新的Identifiable(),因为它没有任何意义。

答案 1 :(得分:0)

通常,抽象类用于定义实现,并且旨在从具体类继承。它是强制类设计者和该类用户之间签订合同的一种方式。如果我们希望从抽象类创建一个具体类(可以实例化的类),我们必须为基类的每个抽象成员函数声明和定义匹配的成员函数。否则,如果基类的任何成员函数未定义,我们将创建一个新的抽象类。

概念上,抽象类是一个无法实例化的类,通常实现为具有一个或多个纯虚拟(抽象)函数的类。

示例:

`class AbstractClass {
 public:
  virtual void AbstractMemberFunction() = 0; // Pure virtual function makes
                                             // this class Abstract class.
  virtual void NonAbstractMemberFunction1(); // Virtual function.

  void NonAbstractMemberFunction2();
}; 

答案 2 :(得分:0)

抽象类的意义在于我们可以为现实世界中的某些东西描述一个抽象接口(没有任何实现)。因此,抽象类在Windows中的COM技术中广泛使用。

例如,如果您需要在某个系统中使用灵活的机制来创建设备驱动程序,那么您可能需要描述设备,驱动程序等实体。如果它们被描述得很好,那么您的用户就是机制将轻松创建新的驱动程序。