Interfaceverergung bringt, meiner Meinung nach, nur etwas, wenn das nachvolgende interface die Funktionen "erzwinkt", welche im Vorgänger enthalten sind.
Also daß das nächte Interface immer automatisch das Erste "einbindet".
> Achtung, wenn das der erste Interface nicht "explizit" in der Klasse eingebunden wurde, dann kann man nicht auf das Erste casten.
Und kann kann ohne Cast im zweiten Interface auf Funktionen des Ersten zugreifen.
Es wird auch gern verwendet, wenn man neue Versionen eines Interfaces einführt, wo diese Interfaces zusammenhängen, welche auf einander aufbauen. (siehe OTA)
Ist ja nicht so, daß die Vererbung
nur für den Compiler ist ... man kann den Code damit auch "dokumentieren", also die Abhängikeiten.
Das letzte UND nutze ich gern aus, um bei Property die Getter/Setter vor der Codevervollständigung zu verstecken.
In Interfaces ist ja leider alles public.
Delphi-Quellcode:
type
IMyIntfIntern =
interface
function Getter: Integer;
// Diese werden von delphis Codevervollständigung nicht angezeigt, wenn es die Funktionen/Property des IMyIntf auflistet,
procedure Setter(i: Integer);
// obwohl Sie das eigentlich machen sollte, aber ich hoffe die reparieren es nicht (nicht ohne private bei Interfaces zu erlauben).
end;
IMyIntf =
interface(IMyIntfIntern)
[
GUID]
property Value: Integer
read Getter
write Setter;
end;