procedure TForm1.BitBtn1Click(Sender: TObject);
var ss:Tstrings;
begin
ss:=TStrings.Create;
ss.Append('这样不行?');
showmessage(ss.Strings[0]);
ss.Free;
end;
编译器会提出如下警告:
1.Constructing instance of 'TStrings' containing abstract method 'TStrings.Clear';
2.Constructing instance of 'TStrings' containing abstract method 'TStrings.Del';
3.Constructing instance of 'TStrings' containing abstract method 'TStrings.Insert';
怎么办?
var ss:Tstrings;
begin
ss:=TStrings.Create;
ss.Append('这样不行?');
showmessage(ss.Strings[0]);
ss.Free;
end;
编译器会提出如下警告:
1.Constructing instance of 'TStrings' containing abstract method 'TStrings.Clear';
2.Constructing instance of 'TStrings' containing abstract method 'TStrings.Del';
3.Constructing instance of 'TStrings' containing abstract method 'TStrings.Insert';
怎么办?
谢谢,原来TStrings下还有子类Tstringlist但是请问,如果没有现成的子类的 还有抽象函数的类
自定义子类时,是不是要把所有抽象函数重载?(麻烦啊!)
TStrings.Del
TStrings.Insert
都是抽象方法没有实际的代码,需要在子类中定义它,比如TStringList就是它的子类,所以一定都用TStringList
用实现了其抽象方法的派生类创建对象用于创建对象的子类必须实现抽象父类的抽象方法,是override(覆盖)而不是overload(重载)
相似的还有TList TStream