Abstract (抽象类)可否理解为它下面可实例化类的框架?(50分)

  • 主题发起人 主题发起人 yanyading
  • 开始时间 开始时间
Y

yanyading

Unregistered / Unconfirmed
GUEST, unregistred user!
Abstract (抽象类)类是不是下面的可实例化类的框架? 那么我们可以操作其中的抽象类的成员, 从而可以达到控制可实例化类中相关的成员?

对否?
 
那么可以认为, Abstract 本身设计的目的就不是为了可以直接生成 那种 “可以被实例化”的类,Abstract类本身就是不完整的,只具有下面那些 “可以被实例化”的类 中一些重要成员。

那些“可以被实例化”的类才是将所有成员补充完整的类。

对否?
 
具体地说
抽象类就是起一个接口的作用。


 
可以查考VCL中TStrings
抽象的基类 (非抽象)派生类
Tstrings ——|-TStringList ---一般我们自己用的字符串列表
|-TMemoStrings ---TMemo.Lines的实际对象的类型
|-TListBoxStrings ---TlistBox.items的实际对象的类型
|-TCustomComboBoxStrings ---TComboBox.items的实际对象的类型
...
同样的接口使得我使用这些控件的字符串列表感觉没有差别,我想这就是多态给我带来的好处!!!!也是VCL的设计的一个亮点
当然如果你调用其派生独有的东西,强制转换一下就ok了。
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2530138
 
类似的在VCL中有很多的应用
如异常类,线程类等我也不是很熟悉,自己去研究了。
 
后退
顶部