Scooter: PHP-Interfaces / abstrakte Klassen

Hi,

gibt es in PHP so was wie Interfaces oder abstrakte Klassen?!

Ich möchte ein Interface / abstrakte Klasse bauen, die welche(s) nie selbst implementiert wird (werden kann), aber Methoden und Eigenschaften für andere Klassen zur Verfügung stellt (Vererbung).

Gibts da sowas?? Ich kenne Interfaces von C# und abstrakte Klassen gibts ja auch bei C++.

Gruß
Scooter

  1. Hallo Scooter,

    Ich möchte ein Interface / abstrakte Klasse bauen, die welche(s) nie selbst implementiert wird (werden kann), aber Methoden und Eigenschaften für andere Klassen zur Verfügung stellt (Vererbung).

    In PHP5 wird es so etwas geben. In PHP4 gibt es das nicht. Du kannst jedoch abstrakte Klassen so realisieren, dass Du einfach eine normale Klasse schreibst, die Du dann einfach nie instanzierst. Also:

    class meineAbstrakteKlasse {
      function A () {
        echo $this->title."\n";
      }
    }

    class meineKonkreteKlasse extends meineAbstrakteKlasse {
      var $title = 'Hallo!';
    }

    $k_obj = new meineKonkreteKlasse ();
    $k_obj->A();

    Noch etwas: Der einzige Vorteil von astrakten Klassen in PHP wäre ja, dass beim Instanzierungsversuch eine Fehlermeldung käme. Das könntest Du eventuell über den Konstruktor noch nachbauen.

    Viele Grüße,
    Christian

    1. Hi Christian,

      In PHP5 wird es so etwas geben. In PHP4 gibt es das nicht. Du kannst jedoch abstrakte Klassen so realisieren, dass Du einfach eine normale Klasse schreibst, die Du dann einfach nie instanzierst.

      Ok, danke! Dachte ich mir schon. Sieht halt nur schöner aus, wenn man eine abstrakte Klasse auch als solche kenntlich machen kann. Oder ein Interface, so wie ich es von C# her kenne.

      Gruß
      Scooter