Es scheint noch ein paar Verständnisprobleme bzgl. Interfaces zu geben. Prinzipiell kann man sagen, dass ein Interface einfach nur eine Vereinbarung bzw. eine Zusicherung ist, dass eine Klasse, die das Interface implementiert, dies garantiert vollständig tut. Soll heißen: will man auf eine Klasse mit dem implementierten Interface IBla, welches die Methode Dings und die String-Eigenschaft Bums hat, zugreifen, kann man sich sicher sein, dass beides auch garantiert vorhanden ist, egal welche Klasse dahintersteckt. In Delphi sind Interfaces historisch bedingt
COM-lastig, d.h. sie deklarieren mindestens die 3 Methoden QueryInterface, _AddRef und _Release. Die letzteren beiden sind für die Referenzzählung zuständig. Man kann sie selbst implementieren oder erbt einfach von TInterfacedObject (Referenzzählung aktiv) oder TInterfacedPersistent (Referenzzählung inaktiv). Bei der Deklaration einer Klasse
muss man von einer anderen Klasse erben (und sei es TObject),
kann aber mehrere Interfaces implementieren.