Тема: Create
Показать сообщение отдельно
  #2  
Старый 07.10.2009, 18:44
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,096
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну тебе ж компилятор английским языком пишет - нельзя перекрыть статический метод. Все дело в том, что если родитель класса не указан, то идет наследование от TObject, а у него коструктор статический. Сначала ты должен сделать его виртуальным, а потом уже в потомках можно перекрывать:

Код:
type
  TBaseClass = class
    constructor Create; virtual;
  end;

  TMyClass = class(TBaseClass)
    constructor Create; override;
  end;

Да, в классе TBaseClass можно, конечно, вызвать унаследованный конструктор путем указания inherited. Но это не обязательно, т.к. в TObject конструктор ПУСТОЙ.

И еще. Помните, что то, что называется в Delphi "конструктор" по сути конструктором не является, а обеспечивает только инициализацию внутренностей класса. Сам класс создается специальным кодом, который программисту недоступен.
Ответить с цитированием