Z
zw960122
Unregistered / Unconfirmed
GUEST, unregistred user!
Virtual方法及Dynamic方法大家一定了解吧。我就由这里开始我的问题。是一系列的呀。(1)我们把问题实例化一点。在Class.pas 中有一个对象TCollection对象中有一个方法constructor Create(Collection: TCollection); virtual;
它的父类的父类TObject也有一个方法Create.
问题出现了。子类中使用方法名称与父类〔再父类〕的方法名相同而参数不同时,后缀应该是什么呢?
换个说法。
type
TMyClass = class
procedure One;virtual;
end;
type
TNewClass = class(TMyClass)
procedure One;virtual;
end;
这段代码也对了?不是吧。
(2)我看到一个abstract后缀。帮助中有一段话。不知怎么翻译。
You can call an abstract method only in a class or instance of a class in which the method has been overridden.
我译的结果是:你只能在一个类中或一个派生类的实例中调用abstract方法。不明白是什么意思。
以TStrings为例。insert 方法如下声明:
procedure Insert(Index: Integer; const S: string); virtual; abstract;
有一个派生类TStringList
使系统有了多态性的特点。但abstract的作用是什么呢。是使TStrings不能建立自己的实例吗。那就是说abstract不是必须的了。应该不是这样吧。谁能告诉我abstract后缀的必要性是什么呢?不用行不行?
它的父类的父类TObject也有一个方法Create.
问题出现了。子类中使用方法名称与父类〔再父类〕的方法名相同而参数不同时,后缀应该是什么呢?
换个说法。
type
TMyClass = class
procedure One;virtual;
end;
type
TNewClass = class(TMyClass)
procedure One;virtual;
end;
这段代码也对了?不是吧。
(2)我看到一个abstract后缀。帮助中有一段话。不知怎么翻译。
You can call an abstract method only in a class or instance of a class in which the method has been overridden.
我译的结果是:你只能在一个类中或一个派生类的实例中调用abstract方法。不明白是什么意思。
以TStrings为例。insert 方法如下声明:
procedure Insert(Index: Integer; const S: string); virtual; abstract;
有一个派生类TStringList
使系统有了多态性的特点。但abstract的作用是什么呢。是使TStrings不能建立自己的实例吗。那就是说abstract不是必须的了。应该不是这样吧。谁能告诉我abstract后缀的必要性是什么呢?不用行不行?