phpbar.de logo

Mailinglisten-Archive

[php] Termini: überladen vs. implementieren

[php] Termini: überladen vs. implementieren

Lutz Zetzsche Lutz.Zetzsche at sea-rescue.de
Don Okt 26 09:26:45 CEST 2006


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