Join Up!
104886 members and counting!

 
downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links 
search for in the  
previousKlassen und ObjekteKonstruktorennext
Last updated: Mon, 28 Oct 2002
view the printer friendly version or the printer friendly version with notes or change language to Czech

extends

Oft braucht man Klassen mit in einer anderen Klasse ähnlichen Variablen und Funktionen. So ist es eine gute Vorgehensweise, eine in allen Ihren Projekten verwendbare Oberklasse zu definieren, und diese dann den Bedürfnissen Ihrer einzelnen Projekte anzupassen. Um dies zu erleichtern, können Klassen andere Klassen erweitern. Die erweiterte bzw. abgeleitete Klasse verfügt über alle Variablen und Funktionen der Basisklasse (dies wird 'Vererbung' genannt, obwohl niemand gestorben ist), und was Sie in der erweiterten Definition hinzufügen. Es ist nicht möglich, etwas von einer Klasse wegzunehmen, d.h. Sie können keine existierenden Variablen oder Funktionen 'wegdefinieren'. Eine Unterklasse ist immer von einer einzigen Oberklasse abhängig, d.h. Mehrfachvererbung wird nicht unterstützt. Klassen werden mittels dem Schlüsselwort 'extends' erweitert.

class Named_Cart extends Cart
{
    var $owner;
  
    function set_owner ($name)
    {
        $this->owner = $name;
    }
}

Hier wird die Klasse Named_Cart definiert, die über alle Variablen und Funktionen von Cart, plus der Variable $owner und der Funktion set_owner() verfügt. Sie können einen bestimmten Einkaufswagen (Named_Cart) auf dem üblichen Weg erstellen, und nun auch den Besitzer (owner) bestimmen und erfragen. Sie können noch immer die normalen Cart Funktionen an Named_Cart anwenden:

$ncart = new Named_Cart;    // Erstellt einen bestimmten Einkaufwagen
$ncart->set_owner("kris");  // den Besitzer festlegen
print $ncart->owner;        // den Besitzer ausgeben
$ncart->add_item("10", 1);  // (vererbte Funktionalität von Cart)

Dies wird auch eine "Eltern-Kind" Beziehung genannt. Sie erstellen eine Klasse ("Eltern"), und erstellen mittels extends eine neue Klasse, die auf der "Eltern"-Klasse basiert: die "Kind"-Klasse. Sie können auch diese neue Unterklasse verwenden und eine neue, auf dieser Klasse basierenden Klasse erstellen.

Anmerkung: Bevor Sie Klassen verwenden können, müssen Sie diese definieren. Wenn Sie wollen, dass Named_Cart die Klasse Cart erweitert, müssen Sie Cart erst definieren. Wenn Sie eine andere Klasse, z.B. Yellow_named_cart erstellen wollen, welche auf Named_Cart basiert, müssen Sie zuerst Named_Cart definieren. Kurz gesagt ist die Reihenfolge, in der die Klassen definiert werden, sehr wichtig.

User Contributed Notes
extends
add a note about notes
There are no user contributed notes for this page.
previousKlassen und ObjekteKonstruktorennext
Last updated: Mon, 28 Oct 2002
Copyright © 2001, 2002 The PHP Group
All rights reserved.
This mirror generously provided by: http://phpbuilder.com/
Last updated: Thu Oct 31 18:34:28 2002 EST