(Moderator)
Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
Delphi 11 Alexandria
|
AW: Best pratice: Klassen überspringen beim Vererben?
14. Aug 2013, 16:33
Zitat:
Ich habe ein Interface (oder eine abstrakte Klasse, kommt auf's gleiche raus).
Nein, weil beim Erben eines Interfaces musst du alles implementieren, bei Erben von einer Klasse nicht.
Delphi-Quellcode:
unit Test;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs;
type
i1 = interface
procedure c;
procedure d;
end;
T1 = class
procedure a; virtual; abstract;
procedure b; virtual; abstract;
end;
T2 = class( T1)
procedure a;
end;
T3 = class (T2)
procedure b;
end;
T4 = class (TObject, i1)
procedure c;
end;
TForm2 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
procedure T2.a;
begin
MessageBox( 0, PChar(Self.ClassName), ' a', 0);
end;
procedure T3.b;
begin
MessageBox( 0, PChar(Self.ClassName), ' b', 0);
end;
procedure T4.c;
begin
MessageBox( 0, PChar(Self.ClassName), ' c', 0);
end;
procedure TForm2.FormCreate(Sender: TObject);
var
o2: T2;
o3: T3;
begin
o2 := T2.Create;
o2.a;
o3 := T3.Create;
o3.a;
o3.b;
end;
end.
Markus Kinzler
|
|
Zitat
|