Auf Funktionen einer anderen Klasse zugreifen

moondancer

Mitglied
Hallo,

ich habe folgendes Problem:
ich habe eine Klasse B, welche von Klasse A abgeleitet ist (class B extends A ). In dieser Klasse B möchte ich nun jedoch auch Funktionen aus einer dritten Klasse C nutzen. Wie stelle ich dies am besten an. Kann B Funktionen von 2 Klassen erben?

Viele Grüße
Christian
 
Vererbung ist kein 'Tool' um sich Methoden zugänglich zu machen.
Du sollst nur eine Klasse beerben, wenn das Kind ein wirkliches Kind der elterlichen Klasse ist. Also z.B. wenn eine Methode einen leicht geänderten Ablauf bekommt oder ähnliches.

Ist dir das Singleton-Erzeugungsmuster ein Begriff? Damit dürfte sich dein Problem lösen lassen, eventuell ist es das was du suchst. Alternativ kannst du auch einfach Referenzen der Objekte von Klasse A und B an die Klasse C übergeben, dann kannst du diese Objekte dort benutzen.

http://phppatterns.com/
http://tripdown.de/artikel_singleton.php
 
Ich kann jetzt leider nur aus Java Erfahrung sprechen, aber prinzipiell sollte es vom logischen nicht anders sein. Erben kannst du nur von einer Klasse, aber du kannst zig viele Schnittstellen implementieren die dann auf Klasse C zugreifen. Also Schnittstelle machen und diese dann in B implementieren.

Sry falls ich mich irren sollte :)
 
Hi, was vieleicht auch möglich wäre, wo ich aber nicht weiß ob es geht ^^, kann die Klasse A nicht von C erben? Also class a extends c und dann class b extends a?

Hoffe das geht ^^

Gruß GalaxyWarrior
 
Ja, das geht auch. Hat man ja auch relativ oft wenn irgendwelche Objekte immer weiter abgeleitet werden, aber denoch der gleichen Wurzel entsprechen. In Java hat man ja auch eine riesen Klassenhirachie. Nur sollte, wie rythms schon sagte, das ganze auch logisch und strukturell aufgebaut werden.
 
Singleton-Erzeugungsmuster und Objektreferenzen sagen mir momentan nicht sehr viel (ich programmiere nicht so oft OO in PHP), aber klingt gut, werd mal nachlesen. An den Klassen A und C möchte ich keine Änderungen vornehmen, da aus einer Klassenbibliothek.
 
Zurück