È possibile nascondere la Creazione ereditata introducendo solo una Creazione non sovraccaricata. Come avete bisogno di due sovraccarico Creare, è possibile unire in un unico coloro Creare un secondo parametro opzionale:
TTest = class(TObject)
public
constructor Create(A:Integer; B: Integer = 0);
end;
Questo darà un avviso del compilatore, segnalando che stai nascondendo il costruttore di default senza parametri. Per sbarazzarsi di avvertimento è possibile dichiarare il costruttore nascondiglio in questo modo:
TTest = class(TObject)
public
constructor Create(A:Integer; B: Integer = 0); reintroduce;
end;
o, se ciò non è fattibile, è possibile introdurre una classe intermedia che introduce la prima creare e poi la classe finale con il secondo sovraccaricato :
preTest = class(TObject)
public
constructor Create(A:Integer); reintroduce;
end;
TTest = class(preTest)
public
constructor Create(A,B:Integer);overload;
end;
fonte
2012-12-22 13:25:33
Perché vuoi? Cosa stai cercando di ottenere? –
+1. Pensavo che fosse stato chiesto prima, ma l'unica domanda che ho trovato non è stata espressa * quasi * in modo succinto come questo. –
@Marjan Venema: È ovvio che voglio fare una classe standard, e la mia classe non dovrebbe avere questo costruttore predefinito. – Javid