Können Sie zwei Klassen in einer Klasse erweitern? [Duplikat]

7

Ich habe eine Klasse, die mehrere untergeordnete Klassen hat, aber ich füge jetzt eine andere Klasse hinzu, die ich auch ein Kind des Elternteils sein möchte, jedoch möchte ich auch viele der Funktionen von einer der anderen untergeordneten Klassen verwenden .

Ich habe daran gedacht, einfach die entsprechenden Funktionen von der anderen Kindklasse auf die Eltern zu übertragen, dachte aber nicht, dass dies wirklich nötig wäre, da nur diese beiden Unterklassen sie nutzen würden, also hoffte ich könnte von der Hauptelternklasse und von einer der vorhandenen Unterklassen ausgehen.

    
Brett 03.07.2011, 20:08
quelle

5 Antworten

12

Sie können die untergeordnete Klasse so erweitern, dass sie sowohl die übergeordneten als auch die untergeordneten Funktionen erbt, was meiner Meinung nach das ist, was Sie zu tun versuchen.

%Vor%     
alxbl 03.07.2011, 20:13
quelle
8

Kein PHP ist eine einzige Vererbungssprache. Wenn du kannst, kannst du das kommende Feature in PHP 5.4 nachsehen, das sind Eigenschaften.

    
morphles 03.07.2011 20:11
quelle
8

Wie schon gesagt, @morples, wird diese Funktion als Eigenschaften (wie Mixins in anderen Sprachen) in PHP 5.4 verfügbar sein. Wenn es jedoch wirklich benötigt wird, können Sie eine solche Problemumgehung verwenden:

%Vor%     
RReverser 03.07.2011 20:35
quelle
2

Als Ja / Nein-Antwort kann ich Nein sagen. Sie können nicht von mehreren Klassen in PHP ausdehnen. Sie können stattdessen interface verwenden.

    
rahim asgari 03.07.2011 20:12
quelle
0

Sie können dies tun, indem Sie rückwärts denken, aber es hängt von der Situation ab. Wenn Sie Ihre Klassen getrennt halten möchten, kann Ihnen niemand eine gute Antwort darauf geben, wie Sie Ihre Objekte und Vererbung strukturieren, wenn Sie uns nicht mehr Informationen geben. Denken Sie auch daran, dass es zu einer Belastung für kleine Projekte wird, wenn Sie sich zu sehr darum sorgen, die Klassenstruktur richtig zu machen, und Sie können die Methoden einfach verschieben und damit später lernen.

    
fabspro 03.07.2011 20:14
quelle

Tags und Links