[OOP] Vererbung / Konstruktoren

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [OOP] Vererbung / Konstruktoren

    Hi,

    wenn ich 3 Klassen habe

    A
    B extends A
    C extends B

    Ist der Konstruktor von A auch in C enthalten, wenn C einen Eigenen hat?

    In meinem Fall erzeugt A ein anderes Objekt in seinem Konstruktor,welches auch C benötigt.
    Allerdings steckt im Konstruktor von A was für C viel Schrott wäre.

    Wie gehe ich am besten vor? Für jede Klasse einen eigenen Konstruktor. Bin echt verwirrt.

    Noch etwas, gilt "parent:" nur für die unmittelbar höhere Klasse (Vater) oder auch für den Grossvater?
    Sprich kann ich so von C auf den Konstruktor von A zugreifen, selbst wenn C seinen eigenen hat?

    Habe das Beispiel in der php.net Doku nicht gerafft, bzw steht dort nix zum "Großvater".



    Danke

  • #2
    der Konstruktor von A bzw. B wird NICHT aufgerufen wenn C einen eigenen hat.

    am besten ordentlich durchreichen, und jedem eine Konstruktor verpassen

    PHP-Code:
    class A{
       
    A(){}
    }

    class 
    B{
       
    B(){
          
    parent::A();
       }
    }

    class 
    C{
       
    C(){
          
    parent::B();
       }

    der Konstruktor von A sollte aufgerufen werden, wenn B UND C keinen eigenen haben
    TBT

    Die zwei wichtigsten Regeln für eine berufliche Karriere:
    1. Verrate niemals alles was du weißt!


    PHP 2 AllPatrizier II Browsergame

    Kommentar


    • #3
      Hi,

      Danke für die Antwort.

      Aber wenn doch alle Funktionen sowieso vererbt werden können.
      In welcher Situatin macht man dann Gebrauch von "parent:" ?

      Parent setzt ja voraus dass vererbt wird.

      Ein ganz blödes Problem.

      Also ich möchte, dass die Variable in der Basisklasse und in allen unteren Klassen vorhanden ist. Wie soll das dann gehen, wenn jede Klasse einen eigenen Konstruktor hat?

      $this->fileName = $_SERVER['PHP_SELF'];


      Und noch was wie ist das mit dem objekt das durch den Konstruktor von A erzeugt wird. Wie kommt C daran. Soll er es selber erzeugen?
      Zuletzt geändert von compuboy1010; 16.09.2003, 13:57.

      Kommentar


      • #4
        wenn du eine vererbte Funktion überschreibst

        zB:

        PHP-Code:
        class A{
           function 
        abc(){
              echo 
        "function A:abc()";
           }
        }

        class 
        extends A{
           function 
        abc(){
              
        parent::abc();
              echo 
        "function B:abc()";
           }

        bringt dir ein

        function A:abc()
        function B:abc()

        ohne das parent könntest du A:abc nicht aufrufen
        TBT

        Die zwei wichtigsten Regeln für eine berufliche Karriere:
        1. Verrate niemals alles was du weißt!


        PHP 2 AllPatrizier II Browsergame

        Kommentar


        • #5
          OK,


          vielen Dank für die nette Hilfe !!!!!!!!!!

          Kommentar

          Lädt...
          X