Rolf B: PlugIn Manager entwickeln

Beitrag lesen

Hallo pl,

So muß z.B. eine interface-Erweiterung sämtliche Methoden definieren die das Basis-Interface vorschreibt.

Unter Erweiterung verstehst Du extends, nicht implements, ja? Aber Interfaces können Methoden erben:

interface IAnimal {
   public function move();
}

interface IMammal extends IAnimal {
   public function move();   // unnötig!
   public function cry();
}

Oder sowas hier?

abstract class Animal implements IAnimal {
    public function move() {
        echo "Hä? Wie geht das?<br>";
    }
}

class Cat extends Animal implements IMammal {
    public function move() {
        echo "Tapp Tapp Tapp<br>";
    }
    public function cry() {
        echo "Miau<br>";
    }
}

An dieser Stelle ist es interessant, ob man IAnimal::move in IMammal wiederholt hat oder nicht. Hat man es getan, dann verlangt PHP vor 5.3 die move-Methode in der Cat-Klasse. Hat man es nicht getan, dann kann Animal::move von Cat geerbt werden. Cat kann aber auch selbst move implementieren und Animal::move überschreiben.

Das älteste Förmchen, das ich im Sandkasten gefunden habe, ist PHP 5.0.4. Auch damit funktionierte das. Es gibt da auch noch PHP 4 Versionen, aber da sich die OOP-Implementierung von PHP 4 auf 5 stark geändert hat, compilierte der obige Code damit nicht und es ist heute auch nicht mehr relevant.

Rolf

--
sumpsi - posui - clusi