![]() |
|
|
|
|
#1
|
||||
|
||||
|
помогите, плз.
Создал класс, обявляю конструктор Код:
tmyclass = class ... private ... public constructor Create; override; end; Cannot override a static method |
|
#2
|
|||
|
|||
|
Ну тебе ж компилятор английским языком пишет - нельзя перекрыть статический метод. Все дело в том, что если родитель класса не указан, то идет наследование от TObject, а у него коструктор статический. Сначала ты должен сделать его виртуальным, а потом уже в потомках можно перекрывать:
Код:
type
TBaseClass = class
constructor Create; virtual;
end;
TMyClass = class(TBaseClass)
constructor Create; override;
end;Да, в классе TBaseClass можно, конечно, вызвать унаследованный конструктор путем указания inherited. Но это не обязательно, т.к. в TObject конструктор ПУСТОЙ. И еще. Помните, что то, что называется в Delphi "конструктор" по сути конструктором не является, а обеспечивает только инициализацию внутренностей класса. Сам класс создается специальным кодом, который программисту недоступен. |