| | | | |
| | |
| Erfahrener Benutzer | Hallo Gemeinde, mal wieder habe ich eine Verständnis bzw. Sinnfrage. Ich ahbe nun, da ich nebenbei auch in Java und C++ rein lerne über abtracte Klassen sowie Interfaces gelesen. Den Unterschied zwischen beiden weis ich mittlerweile. In Interfaces werden nur Methoden vordeklariert die aber in einer Klasse wo dieses Interface implementiert wird auch unbedingt angewendet werden müssen bzw. überschrieben werden müssen. In abtracten Klassen kann kompletten Handlungscode und Programmabläufe schreiben und diese dann in eine andere Klasse mit extends einbinden. So meine Frage nun dazu ist, was für einen Sinn machen beide Sachen? Wann und wie und warum mit welchen Vorteil werden die eingesetzt? Ich konnte über meine gestellten Fragen leider keine Antwort finden oder habe mich bei der Suche danach nur dumm angestellt. Auch zu den Exceptions noch mal eine Frage, was die bedeutet weis ich, aber schreibt man dafür eine extra Klasse die alle eventuellen Fehlerauftritte abhandelt und diese dann abfängt oder wie würde das konkret ablaufen? Ich danke vilmals für eure Antworten Gruß litter
__________________ Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir. http://www.lit-web.de |
| |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | |
| Erfahrener Benutzer | Das mit den Interfaces habe ich vom Sinn her soweit begriffen, eine Frage noch dazu, ist es Sinvoll das ein Interface für mehrere unterschiedliche Klassen eine Schnittstelle bietet? Oder aäre das eher Zweckentfremdet und man sollt für eine bestimmte Klasse ein zugehöriges Interface machen? Meine Frage zum Sinn und -zweck zu abstracten Klassen ist irgendwie noch ungeklärt. Wie gesagt was eine abstracte Klasse nicht kann weis, das heist man kann ein Objekt einer abstracten Klasse nicht instanzieren. Aber wosu machen solche Klassen eben einen Sinn, das will mir nicht wirklich einleuchten. Habe in anderen Foren eben nur gelesen was eine abstracte Klasse und was man damit nicht machen kann, aber den Sinn einer solchen haben ich noch nicht nachlesen können. Habt vielen Dank für eure Erklärungen gruß litter
__________________ Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir. http://www.lit-web.de |
| |
| | |||
| Moderator Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Zitat:
Man betrachte diesen Code PHP-Code: PHP-Code: Zitat:
Im nächste Code-Beispiel haben wir ein Interface ( CanDoSomethingInterface ), eine Abstrakte Klasse die teile davon implementiert ( CanDoSomethingAbstract ), 2 Klassen die dann auf die Abstrake Klasse aufbauen ( ReallyDoesSomethingByInstantMessanger, ReallyDoesSomethingByMail) und eine Klasse ( AnotherClass ) die wiederum wie aus dem oberen Beispiel mit den Interfaces, eine Methode (handleCanDo) bietet der man eine Klasse die ein Interface implementiert übergeben kann und die etwas damit macht. PHP-Code: ![]()
__________________ robo47.net - Blog, Codeschnipsel und mehr | | ||
| |
| | |
| Erfahrener Benutzer | Habt mal alle vielen Dank für eure Antworten, zumindest ist mir jetzt auch einiges klarer fürs Verständnis geworden. Den Code von robo muss ich zwar erst mal richtig in de Rübe bekommen und den verstehen, werde mir aber Mühe geben. Gruß litter
__________________ Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir. http://www.lit-web.de |
| |
| | |||
| Erfahrener Benutzer | Ich meine, ich kann mich jetzt gewaltig irren, aber müssen als Abstract deklarierte Funktionen in den Kinderklassen nicht auch deklariert werden? Demnach würde ReallyDoesSomethingByMail und ReallyDoesSomethingByInstantMessanger jeweils eine Fehlermeldung, der nicht deklarierten Funktion doSomethingElse die in der Abstakten Klasse als abstract deklariert wurde, werfen? Müsste ich jetzt mal testen, aber ich meine das ich da richtig liege. Edit: Jap, müssen deklariert werden: Zuvor passt dem deine nicht definierte Methode des Interfaces schon nicht: Zitat:
Zitat:
__________________ Mfg Tomtaz "Es soll jetzt diese Erfindung geben.... Kugel oder so heißt die. Ist so eine Art Suchmaschine..." Geändert von tomtaz (12.06.2009 um 23:55 Uhr). | ||
| |
| | ||
| Moderator Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Zitat:
//edit damn .. kann es nimmer selbst editieren ... egal ... die methode einfach wegdenken ![]()
__________________ robo47.net - Blog, Codeschnipsel und mehr | | |
| |
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Mehrere Klassen verknüpfen | BlackJack01090 | Software-Design | 9 | 26.05.2009 20:43 |
| [Erledigt] Der Sinn und Zweck von Anonymen Funktionen? | DarkPrisma | PHP-Fortgeschrittene | 16 | 23.04.2009 14:45 |
| Besucher kamen über folgende Suchanfragen bei Google auf diese Seite |
| sinn von interfaces, interface sinn, interface zweck, interfaces sinn, sinn von interface, php interfaces sinn, zweck interface, sinn und zweck von interfaces, php sinn von interface, php interface sinn, sinn interfaces, zweck von interfaces, php unterschied abstract interface, sinn interface, zweck abstrakter klassen, php interfaces, php abstract \sinn\, unterschied abstract interface php, c interface andere interfaces vorgeben, sinn von interfaces php |