Рассмотрим иерархию гипотетических объектов, начиная с:
TFruit = class(TObject)
public
constructor Create(Color: TColor); virtual;
end;
и ее потомка:
TApple = class(TFruit)
public
constructor Create(); overload; virtual;
constructor Create(Color: TColor); overload; override; //deprecated. Calls other constructor - maintaining the virtual constructor chain
end;
Идея в том, что я переопределил виртуальный конструктор базового класса с перегрузкой , которая также оказывается виртуальной.
Delphi жалуется:
Метод 'Create' скрывает виртуальный метод базового типа 'TFruit'
За исключением того, что он не скрывает его - он прямо здесь!
В чем дело?