mvb (2002-12-29 16:47:00)
在Object Pascal语言中,类变量相当于一个指针.父类变量可以指向子类实例,但只能调用在
父类中声明的属性和方法.如果采用第一种方法,就无法调用TStringList的Find和Sort方法.
TStrings是一个抽象类.在抽象类中,有一种抽象方法.它的实现并没有出现在定义它的类说
明中,而是放在子类中具体说明,如TStrings的Delete和Clear方法.这种方法事实上只定义
了一个接口.一个方法在被说明为virtual或dynamic之后加上abstract后,就成为一个抽象
方法.
抽象类的存在可以实现面向对象编程的一个特征:多态性.即多个子类继承自一个父类,用一
个父类变量可以访问多个子类的实例,并调用不同的方法.例如:
var
s1:TStrings;
s2:TStringList;
s3:TStringGridStrings;
begin
s1:=TStringList.Create;
s1.add; //此时调用的是TStringList中的方法.
s1.Destory;
s1:=TStringGridStrings.Create;
s1.Add; //此时调用的是TStringGridStrings中的方法
s1.Destory;
end;