PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Überschreiben / Überladen


Evil Ash
2003-07-13, 16:36:56
Hi,


wo liegt nochmal der Unterschied zwischen Überladen und Überschreiben bei Java ?

Könntet ihr mir für die Methode

public int beispiel (int x, int y) {return x+y;}

jeweils ein Beispiel geben ?


Danke.

HellHorse
2003-07-13, 17:18:18
überladen:

public int beispiel (int x, int y, int z){...}


überschreiben:
(schlechte Übersetzung da englisch overriding und nicht overwriting)

public int beispiel (int x, int y){...}

in einer Klasse, die von einer Klasse erbt, in der

public int beispiel (int x, int y){...}

ist (yupp, die Methodensignaturen sind gleich). Die alte Methode ist mit

super.beispiel(x,y);

immer noch aufrufbar.

Stone2001
2003-07-13, 17:18:48
Ich bin zwar ein Java / Programmierexperte, aber..

Überladung:
Die Funktionen haben den gleichen Namen, aber eine unterschiedliche Anzahl an Funktionsparamtern, sowie eine unterschiedliche Funktionsimplementierung.
Überschreibung:
Von Üerschreibung spricht man, wenn man in einer abgeleiteten Klasse eine geerbte Methode, neu definiert. D.h. der Name und die Funktionsparameter bleiben gleich, nur die Implementierung ändert sich.

Am Beispiel wirds klar:
Überladung:
public int beispiel (int x, int y) {return x+y;}
public int beispiel (int x) {return x²}

Jetzt gibt es zwei verschiedene Funktion, mit unterschiedlichen Implementierung und unterschiedliche Anzahl von Funktionsparametern.
Überschreibung:
class test1:
{
public int beispiel (int x, int y) {return x+y;}
}

class test2 extends test1:
{
public int beispiel (int x, int y) {return x*y;}
}
In diesem Fall würde die Klasse test2 die Funktion beispiel von der Klasse test1 erben. Da jetzt die Klasse test2 die Funktion aber komplett neu schreibt, wird die Funktion überschrieben. Man kann jetzt nur noch auf die Funktion von test1 mittels des Punkt-Operators zugreifen (e.g. test1.beispiel), sonst benutzt man die Funktion der eigenen Klasse.

Vedek Bareil
2003-07-14, 02:06:11
Original geschrieben von HellHorse
überschreiben:
(schlechte Übersetzung da englisch overriding und nicht overwriting)
und was wäre die richtige Übersetzung? Überreiten? Das würde ich eher für einen Begriff aus dem Militärwesen halten, der das Überrennen einer feindlichen Stellung mittels Kavallerie bezeichnet :D

HellHorse
2003-07-19, 08:42:19
Original geschrieben von Vedek Bareil
und was wäre die richtige Übersetzung? Überreiten? Das würde ich eher für einen Begriff aus dem Militärwesen halten, der das Überrennen einer feindlichen Stellung mittels Kavallerie bezeichnet :D
Ich bin nicht für die Designfehler der Deutschen Sprache verantwortlich, das ist die Duden Gesellschaft. :D
mein Dixer sagt für override:

sich hinweg setzen über; nicht berücksichitgen
(Beschluss) ausser Kraft setzen

und für overriding:
vorrangig; vordringlich; dringenenste
das kommt dem doch verdammt nahe