抽象类有什么特点

朱雀 2021-01-27 10:01 971阅读 0赞

  抽象类往往用来表征对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。通常在编程语句中用abstract修饰的类是抽象类。在C++中,含有纯虚拟函数的类称为抽象类,它不能生成对象;在java中,含有抽象方法的类称为抽象类,同样不能生成对象。抽象类是不完整的,它只能用作基类。在面向对象方法中,抽象类主要用来进行类型隐藏和充当全局变量的角色。
  抽象类概念理解
  在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。
  抽象类往往用来表征对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。
  比如,在一个图形编辑软件的分析设计过程中,就会发现问题领域存在着圆、三角形这样一些具体概念,它们是不同的,但是它们又都属于形状这样一个概念,形状这个概念在问题领域并不是直接存在的,它就是一个抽象概念。而正是因为抽象的概念在问题领域没有对应的具体概念,所以用以表征抽象概念的抽象类是不能够实例化的。
  c#中的抽象类的特征
  抽象类具有以下特性:
  抽象类不能实例化。
  抽象类可以包含抽象方法和抽象访问器。
  不能用sealed修饰符修饰抽象类,因为这两个修饰符的含义是相反的。采用sealed修饰符的类无法继承,而abstract修饰符要求对类进行继承。
  从抽象类派生的非抽象类必须包括继承的所有抽象方法和抽象访问器的实际实现。
  抽象类与具体类比较
  抽象类不能直接实例化,并且对抽象类使用new运算符会导致编译时错误。虽然一些变量和值在编译时的类型可以是抽象的,但是这样的变量和值必须或者为null,或者含有对非抽象类的实例的引用(此非抽象类是从抽象类派生的)。
  允许(但不要求)抽象类包含抽象成员。
  抽象类不能被密封。

发表评论

表情:
评论列表 (有 0 条评论,971人围观)

还没有评论,来说两句吧...

相关阅读

    相关 抽象和接口什么区别?

    首先抽象类和接口都是 Java 中多态的常见使用方式。 区别可以理解为接口比抽象类更加的抽象,但是抽象类的功能是比接口更多的。 关于了解接口与抽象类更多的区别,请参考这篇博

    相关 抽象和接口什么区别

    (1)接口和抽象类的概念不一样。接口是对动作的抽象,抽象类是对根源的抽象。 抽象类表示的是,这个对象是什么。接口表示的是,这个对象能做什么。比如,男人,女人,这两个类

    相关 抽象什么特点

      抽象类往往用来表征对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。通常在编程语句中用abstract修饰的类是抽象类。...

    相关 接口和抽象什么区别

    接口和抽象类有什么区别 你选择使用接口和抽象类的依据是什么? 接口和抽象类的概念不一样。接口是对动作的抽象,抽象类是对根源的抽象。 抽象类表示的是,这个对象是什么。...