见到有人这样写,有什么意义吗?只是为了说明它是一个抽象类?TABC = class abstract
解决方案 »
- 只让程序运行一个实例,如何实现已经运行的实例获得焦点并正常显示 ?
- 超值的分数,奇怪的问题,MessageDialog:怎样让字符串不换行显示!!!!! 请各位大虾出招
- messagedlg函数问题!
- 请教高手TrackBar使用问题...
- 铵键精灵中的“文本输入”是如何实现的?
- Rave是什么它和delphi有什么区别?
- 我拿到计算机专业本科证书啦!放分给各位弟兄们。
- 如何在Delphi中使用命令修改windows中控制面板中的区域设置中的日期shortdate的格式?请给代码,在线等侍,立即给分!
- 读串口的数据到缓冲 区,再取出来,老是出错!问题在哪儿?
- 如何把一个进制数转成字符?急在线等
- 如何在同一个程序中不要显示多个窗口在任务栏上?
- IdHttp登陆到网页,然后free掉,服务器还是保留登陆信息,除非将程序关掉。
TXXX=class
procedure ABC();virtual;abstract;
procedure D();
end;
这样方法ABC()在TXXX类中得不到实现,但TXXX的其他方法可以调用ABC(),如:
procedure TXXX.D();
begin
ABC();
end;
在TXXX的派生类中可以覆盖TXXX.ABC().如:
TX=class(TXXX)
procedure ABC();override;
end;
procedure TX.ABC();
begin
ShowMessage('This is Tx class');
end;
这样调用Tx.D()就是一个Message框。
这种机制可以用来实现基类不知如何实现的方法,并将它留给子类去实现。
那么就定义成abstract抽象方法了,这就是多态的思想之一TABC = class abstract
这个写法是错误的,是不是其它版本可以这么写就不知道了,D7是不行的若类中包含了抽象方法,那么这个类就是抽象类了
你可以参考:http://wenku.baidu.com/view/9328b6492b160b4e767fcf7e.html
type
className = class [abstract | sealed] (ancestorClass)
memberList
end;即使一个类的成员申明中不包括任何抽象虚拟方法,该类本身也可以加上abstract,即表示该类不能被直接实例化,只有它的子类才能被实例化。