Mailinglisten-Archive |
Andreas Heigl wrote: > Wo willst du denn die Variablen setzten? Wenn du die Klasse vererbst rufst > du den Konstruktor der abstrakten Klasse auf. Darin kannst du ganz normal > eine Variable 'setzen' > Wenn du die Funktion foo() in deiner abgeleiteten Klasse neu definieren > Willst, würde ich dir zu einem Interface raten. Das wird von einer Klasse > implementiert und die im Interace beschriebenen Funktionen MÜSSEN dann auch > in der Implementierenden Klasse neu beschrieben werden. > Ist das vielleicht das, was du suchst? Prinzipiell ja, die abstract Variante ermöglicht mir allerdings zusätzlich Vordefinierte Funktionen der Klasse mitzugeben. Aber selbst das interface ermöglicht mir nicht eine Klasse zu zwingen, ein Attribut bereistellen zu müssen. Bsp.: interface test { protected $foo; function bar(); } PHP5: Interfaces may not include member variables ... Eine Rückkehr zum Getter/Setter Verfahren wollte ich eigentlich vermeiden. Also entweder selbst drauf achten, das die Variable da ist, oder über eine Set/Get Methode erzwingen. Da ich allerdings bequem bin, werde ich wohl selbst drauf achten müssen ;-) btw. Welchen konkreten Anwendungfall gibt es denn, wo man man abstract statt eines interface nutzen sollte/muss? Ist mein "bequemer" Ansatz der Weg (sparen von extends + interface) oder gibt es eine im OOP dafür vorgesehene Aufgabe? -- Andreas Lange
php::bar PHP Wiki - Listenarchive