Methoden Methoden überlagern - entweder int || double

llabusch

Mitglied
Hallo liebe Java-Gemeinde!

Ich soll in einer Klasse zwei Methoden schreiben. Einmal quadrat() und einmal wurzel().

Diese Methoden soll ich jeweils aber zwei Mal schreiben mit dem gleichen Namen, also dass diese sich überlagern. Die eine Version soll int verarbeiten, die andere double, je nach dem, welcher Datentyp geliefert wird.

Wie bekomme ich das hin? Also, dass die Methode je nach Datentyp aufgerufen wird?



Lieben Gruß 🙂
 
Diese Methoden soll ich jeweils aber zwei Mal schreiben mit dem gleichen Namen, also dass diese sich überlagern. Die eine Version soll int verarbeiten, die andere double, je nach dem, welcher Datentyp geliefert wird.

In diesem Fall heisst das Überschatten.

Einfach eine Methode (Name und Rückgabe-Typ müssen gleich sein) mit jeweils einem int-Parameter und alternativ einem double-Parameter schreiben.
 
Muss mich korrigieren, der Threadersteller Überlädt seine Methoden 😉

Aber zwischen überladen und überschreiben, muss man unterscheiden. Wahrscheinlich nennt es jedes Buch/Tutor es anders
 
Lasst mich das kurz klarstellen:

Überschreiben ist, wenn ihr in der Methode der Unterklasse dasselbe Protokoll benutz wie in der Methode der Oberklasse.

Überladen ist, wenn sich die Protokolle der Methoden der Ober- und der Unterklasse unterscheiden.

Lest Euch doch dazu einfach mal diesen Artikel hier durch:

Galileo Computing :: Java ist auch eine Insel – 5.10 Methoden überschreiben

Zurück zu Deinem Problem llabusch:

Du kannst eine Methode machen, die den Input testet. Wenn der Input vom Typ Integer ist, dann kannst Du die Methode mit dem Parameter für Integer aufrufen, wenn der Input vom Typ Double ist, dann rufst Du die Methode mit dem Parameter Double auf.

Genügt Dir das als Antwort oder benötigst Du auch noch etwas Code als Anregung?

LG
 
Genügt Dir das als Antwort oder benötigst Du auch noch etwas Code als Anregung?

LG

Um ehrlich zu sein, habe ich das auch ohne extra Methode, die die Eingabe vorher prüft und dann weiterleitet geschafft:


Java:
//Die Methoden zum quadieren, welche sich je nach Datentyp
	//(int || double) überlagern
//*******************************************************************************	
	public static int quadrat(int wert){
		
		int ergebnis;
		
		ergebnis = wert * wert;
	
		
		
		return ergebnis;
		
	}
	
	
	
    public static double quadrat(double wert){
		
		double ergebnis;
		
		ergebnis = wert * wert;
		
		
		return ergebnis;
		
	}
//********************************************************************************


Der sucht sich einfach automatisch die richtige Methode, funktioniert prima! 🙂

Oder kann es irgendwie dann zu Komplikationen kommen, die ich als Anfänger nicht vorhersehen kann?
 
Nein,

da kann kein Problem auftreten, das Du übersehen hast.
So hast Du de facto zwei verschiedene Methoden, die Deine Aufgabenstellung konkret erfüllen.

LG
 
Protokol?? wtf ich kenn das als Signatur?!?!?

Die Idee von Andy klingt plausibel, so würde ich es auch machen, damit mit den Code versteht.
 
@ Nico,

Danke für den Hinweis. Habe das falsche Wort gewählt. Die Signatur ist das von uns beschriebene, das Protokoll war die Menge an Methoden einer Klasse beim dynamischen Binden..

Entschuldigung für die falsche Wortwahl, da war ich gerade mit den Gedanken bei Generics und vorher bei Polymorphie.. xD

LG
 

Zurück
Oben