Mailinglisten-Archive |
Andreas Lange schrieb: > > Welchen konkreten Anwendungfall gibt es denn, wo man man abstract > statt eines interface nutzen sollte/muss? Ist mein "bequemer" > Ansatz der Weg (sparen von extends + interface) oder gibt es eine im > OOP dafür vorgesehene Aufgabe? Ich bin ja jetzt nicht der spezialist im OOP, aber prinzipiell gibt dir eine Abstrakte Klasse die Möglichkeit grundlegende Funktionen zur Verfügung zu stellen, die mehrere Klassen benötigen, ohne dass diese Klasse selbst instanziert wird. Ein Interface dagegen ist eine echte Schnittstelle, die eine Klasse mitbringen muss. Ich hab ein schönse Beispiel n einem UML-Buch gesehen. Da wurde eine Party im UML-Stil dargestellt. Der 'Partyteilnehmer' war eine Abstrakte Klasse, die von den Klassen 'Gast' und 'Gastgeber' geerbt wurde. Und beide implementierten das Interface 'Esser'. +-----------------------+ | Gastgeber |--O Esser +-----------------------+ | hektisch: true | +-----------------------+ +-----------------------+ | Partyteilnehmer | <-- |begrüße ( Gast g ) | +-----------------------+ |verabschiede (Gast g ) | | betrunken: false | +-----------------------+ | intus: Cocktail [1..*]| | begeistert: int | +-----------------------+ +-----------------------+ | Gast |--O Esser |überdenkeBegeisterung | <-- +-----------------------+ | trinke (int Cocktail) | +-----------------------+ +-----------------------+ | feiere() | +-----------------------+ +--------------------------------------------+ | <<Interface>> | | Esser | +--------------------------------------------+ | isst ( int Häppchen return boolean satt ) | +--------------------------------------------+ Klar geworden? Ich persönlich fand es recht erhellend Grüße Andreas -- wdv Medien & Kommunikation GmbH & Co. OHG Mediendatenverarbeitung Andreas Heigl Siemensstrasse 6 61352 Bad Homburg Germany Telefon +49-(0)6172-670-185 Telefax +49-(0)6172-670-181 www.wdv.de
php::bar PHP Wiki - Listenarchive