Mailinglisten-Archive |
Hallo Sebastian, Am Donnerstag, 26. Oktober 2006 08:45 schrieb Sebastian Mendel: > abgesehen davon das ich nicht weiß was das mit Java zu tun hat und > warum Java hier immer als Referenz herhalten soll, etwas allgemein > gehalterene Beschreibungen für OO Programmierung wären mir lieber, > bestätigt das doch nur das Überladen hier der falsche Begriff ist und > überschreiben und neu implementieren ist jawohl auch das selbe. > > http://de.wikipedia.org/wiki/%C3%9Cberladen > http://de.wikipedia.org/wiki/%C3%9Cberschreiben ich habe Java als Beispiel gewählt - wie ich gerade gesehen habe, hätte es wohl auch C++ sein dürfen, nur das kenne ich nicht ;-) -, weil ein Beispiel konkret ist und hilft, die Begrifflichkeit zu klären. Theoretisch hast Du recht. Es wäre schöner, über die allgemein gehaltenen Beschreibungen der OOP zu gehen. Jemand wie ich - Thema Autodidakt und mangelnder theoretischer Hintergrund ;-) - geht da aber schnell verloren. Grund ist die unterschiedliche Umsetzung von diesen Prinzipien wie Überladen in den verschiedenen Programmier- und Skriptsprachen, die teilweise so gestaltet ist, daß jemand wie ich nicht mehr in der Lage ist, darin das Überladen zu erkennen. Letztlich hat damit der Begriff immer eine sprachspezifische Bedeutung, der mit dem Begriff aus der reinen Theorielehre nicht mehr ganz im Einklang stehen muß. Also ein Vergleich, der sicherlich deutlich macht, was ich meine: http://de.wikipedia.org/wiki/%C3%9Cberladen http://www.php.net/manual/en/language.oop5.overloading.php http://www.galileocomputing.de/openbook/javainsel5/javainsel02_006.htm#Rxx747java02006040000AD1F02C237 http://www.python.org/doc/faq/programming.html#how-can-i-overload-constructors-or-methods-in-python Hier geht es vier Mal um Überladen, trotzdem fällt es - jedenfalls mir - vielfach schwer, die Gemeinsamkeiten zu erkennen. Teilweise scheint es sogar widersprüchlich: "Überladen (engl. overload) bezeichnet in der Informatik bei der Computerprogrammierung die Erstellung von zwei oder mehr Funktionen mit dem selben Namen. Welche Funktion aufgerufen wird, wird anhand der deklarierten Datentypen der Parameter entschieden." (Wikipedia) "Sowohl Methodenaufrufe als auch Zugriffe auf Member können mittels der __call, __get und __set Methoden überladen werden. Diese Methoden werden nur ausgelöst, wenn Ihr Objekt oder abgeleitetes Objekt den Member oder die Methode, auf die Sie zuzugreifen versuchen, nicht enthält." (PHP) In diesem Sprachgewirr geht meiner einer schnell verloren. Daher also ein konkretes Beispiel, bei mir halt gerne aus Java, damit man gegenseitig weiß, wovon man spricht. :-) Viele Grüße Lutz
php::bar PHP Wiki - Listenarchive