Ich arbeite gerade an einem Tutorial über Klassen in Delphi. Zum Thema Polymorphie habe ich mir folgendes Demo geschrieben:
Unit1:
Delphi-Quellcode:
uses
Family;
procedure TForm1.btnParentsClick(Sender: TObject);
var
Parents: TParent;
begin
Parents := TParent.Create;
try
ShowMessage(Parents.GetType);
finally
FreeAndNil(Parents);
end;
end;
procedure TForm1.btnSonClick(Sender: TObject);
var
Son: TParent;
begin
Son := TSon.Create;
try
ShowMessage(Son.GetType);
finally
FreeAndNil(Son);
end;
end;
Und die
Unit Family mit der Klasse:
Delphi-Quellcode:
unit Family;
interface
type
TParent =
class(TObject)
public
function GetType:
String;
virtual;
// zum Überschreiben markieren
end;
type
TSon =
class(TParent)
public
function GetType:
String;
override;
// Eltern-Methode überschrieben
end;
implementation
////////////////////////////////////////////////////////////////////////////////
//
// TParent.GetType
//
// Verwandtschaftsbeziehung.
function TParent.GetType:
String;
begin
result := '
Eltern';
end;
////////////////////////////////////////////////////////////////////////////////
//
// TSon.GetType
//
// Verwandtschaftsbeziehung.
function TSon.GetType:
String;
begin
result := '
Sohn';
end;
end.
Ich bin damit allerdings noch nicht so ganz glücklich. Hat eventuell jemand eine bessere Idee? Es sollte möglichst einfach und übersichtlich sein. Eventuell reicht es ja schon die Methoden besser zu benennen oder nur etwas zu ergänzen.
Es wäre auch schön, wenn man die Operatoren
as und
is einbauen könnte.