Das folgendes funktioniert ist mir klar:
Delphi-Quellcode:
unit Unit3;
interface
type xy =
class
x, y: integer;
function get_str:
string;
virtual;
end;
type yz =
class(xy)
function get_str:
string;
override;
end;
implementation
function xy.get_str:
string;
begin result := #32;
end;
function yz.get_str:
string;
begin result := #33;
end;
end.
Aber wiso funktioniert auch folgendes? Bzw. worin liegt da der Unterschied?
Denn hier wird die Funktion get_str ja auch überschrieben, jedoch ohne dass sie vorher per
virtual als überschreibbar deklariert wurde.
Delphi-Quellcode:
unit Unit2;
interface
type xy =
class
x, y: integer;
function get_str:
string;
end;
type yz =
class(xy)
function get_str:
string;
end;
implementation
function xy.get_str:
string;
begin result := #32;
end;
function yz.get_str:
string;
begin result := #33;
end;
end.