Problem bei Vererbung zweier Klassen

  • Hey,


    ich habe ein kleines Problem, und zwar übergebe ich aus der Klasse mensch mit return $this -> name einen Namen, ich greife aus der Klasse auto extends mensch auf mensch zu, und möchte return $this -> name ausgeben, das klappt aber voll nicht, vielleicht kann mir jemand auf die Sprünge helfen?



    Selbiges schlägt auch hier fehl:


  • Hallo


    wenn Du im ersten Code $name auf protected setzt sollte es funktionieren.


    Anmerkungen:


    Abgeleitete Klassen haben nur Zugriff auf Elemente der Basisklasse die als public oder protected deklariert sind.




    Konstruktoren keinen Wert zurück.
    In der Klasse Auto solltest Du den Konstruktor von Mensch aufrufen. z.B so:


    Code
    parent::__construct("Peter", 2500);


    Dann brauchst Du kein Object mensch anlegen.


    Es macht wenig Sinn wenn Auto von Mensch erbt. Eine geeignete Basisklasse für Auto wäre Vehicle. Vehicle wäre eine Variable in der Klasse Mensch.




    Mfg


    Starhunter

  • Huhu,


    also das der Konstruktor keinen Wert zurück gibt glaube ich erst einmal nicht.


    Wie nun allerdings welche Klassen vererbt werden sollten ist letztendlich recht egal denke ich mal, ich halte es hier für unnütz die Klasse Vehicle dazwischen zu packen.


    Laut deiner Aussage müsste folgendes klappen:




    Hier mal die Ausgabe:


    Zitat


    Nun habe ich allerdings gemerkt das ich die Klasse mensch garnicht aufrufen muss, hier mal wie es geht:


  • Hallo


    so hatte ich es gemeint und so funktioniert es auch:


    <?php


  • Das ist doch der sinn von verärbung....



    Man übernimmt die Eigenschaften und Methoden der Klasse, und baut sogesehen nur die Speziellen eigenschaften und methoden ein.



    Z.B


    -> Kunde


    eigenschaft: 40mb speicher
    methode: speichern
    methode2: löschen



    Abgeleitete klasse


    ->premium Kunde


    eigenschaft: 100mb speicher <-- eigenschaft aus kunde wird überschrieben


    methode: belegter speicher abrufen <-- methode die nur premiumkunde hat.



    Somit kann ich jetzt schauen. Rufe ich die normalen Kunden Klasse auf, und kann nur löschen und speichern und habe 40mb platz


    oder rufe ich Premiumkunde auf und habe


    100mb platz
    kann löschen und speichern
    und abfragen wieviel speicher belegt ist.


    Greetz TimTim

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!