Delphi: Как добавить другой конструктор к потомку?

Обновить: Пример, который я первоначально имел, был довольно сложным. Вот простой пример из 8 строк, который объясняет все в одном блоке кода. Следующиене компилируется выдает предупреждение:

TComputer = class(TObject)
public
    constructor Create(Cup: Integer); virtual;
end;

TCellPhone = class(TComputer)
public
    constructor Create(Cup: Integer; Teapot: string); virtual;
end;

Замечания: Этот вопрос является частью 3 в моей продолжающейся серии вопросов о тонкостях конструкторов в Delphi

Оригинальный вопрос

Как я могу добавить конструктор в существующий класс?

Давайте приведем гипотетический пример (то есть тот, который я набираю здесь в редакторе SO, чтобы он мог или не мог скомпилироваться):

TXHTMLStream = class(TXMLStream)
public
   ...
end;

Далее предположим, что нормальное использованиеTXHTMLStream участвует в выполнении большого количества повторяющегося кода, прежде чем его можно будет использовать:

var
   xs: TXHTMLStream;
begin
   xs := TXHTMLStream.Create(filename);
   xs.Encoding := UTF32;
   xs.XmlVersion := 1.1;
   xs.DocType := 'strict';
   xs.PreserveWhitespace := 'true';
   ...

   xs.Save(xhtmlDocument);

Предположим, что я хочу создать конструктор, который упрощает весь этот стандартный код установки:

TXHTMLStream = class(TXMLStream)
public
    constructor Create(filename: string; Encoding: TEncoding); virtual;
end;

constructor TXHTMLStream.Create(filename: string; Encoding: TEncoding);
begin
   inherited Create(filename);
   xs.Encoding := Encoding;
   xs.XmlVersion := 1.1;
   xs.DocType := 'strict';
   xs.PreserveWhitespace := True;
   ...
end;

Это упрощает использование объекта для:

var
   xs: TXHTMLStream;
begin
   xs := TXHTMLStream.Create(filename, UTF32);
   xs.Save(xhtmlDocument);

За исключением случаев, Delphi жалуется, что мой новый конструктор скрывает старый конструктор.

Метод «Создать» скрывает виртуальный метод базового типа «TXMLStream»

я конечно не сделалимею в виду чтобы спрятать предка создать - яхочу и то и другое.

Как добавить конструктор (сразные подпись) к классу-потомку, сохраняя при этом конструктор предка, чтобы он все еще мог использоваться?

Ответы на вопрос(4)

Ваш ответ на вопрос