Einzelnen Beitrag anzeigen

mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Best pratice: Klassen überspringen beim Vererben?

  Alt 14. Aug 2013, 15: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
  Mit Zitat antworten Zitat