Meinst Du Konstruktoren zu erzwingen, die eine bestimmte Signatur haben? Nicht das ich wüßte...
Ansonsten kannst du natürlich vieles von dem was Interfaces machen auch mit abstrakten Klassen machen, aber wenn Du aus Design-Technischen Gründen nicht alle Klassen, die die gewollten Methoden implementieren sollen, von einer abtrakten Superklasse abstammen lassen willst, müßtes Du Interfaces benutzen.
Beispiel: Die Klassen 'StoffKatze' und 'Katze' haben beide das Attribut 'Fell' und können/sollen die Methoden 'bürsten()' und 'istHaarig()' implementieren. Die Klasse 'Katze' stammt von der abstrakten Klasse 'Tier' ab, die die abstrakte Methoden 'gibLaut()', 'bürsten()' und 'istHaarig()' implementiert. 'Katze' implementiert diese Methoden dann selbst. Wenn man jetzt 'StoffKatze' auch von 'Tier' erben lassen würde, müßte diese Klasse auch 'gibLaut' implementieren, was aber keinen Sinn macht, da ein Stofftier keinen Laut geben kann. Also kreiert man statt dessen ein Interface 'MitFell' mit den Methodensignaturen 'bürsten()' und 'istHaarig()' und läßt die beiden Klassen 'StoffKatze' und 'Katze' dieses Interface implementieren.
Man könnte dann auch wunderbar in einer Klasse 'Ich' eine Collection 'meineLieblinge' implementieren und dort ein Objekt 'StoffKatze' und ein Objekt 'Katze' reinlegen. Wenn man dann eines dieser Objekte herausholt kann man dann mit ((HatFell)meinObjekt).bürsten() eine der Methoden aus dem Interface aufrufen.
Hmm... Das war ganz schön lang. :wink: