2 methoden mit gleichen namen und ein Interface

sengul

Bekanntes Mitglied
Hallo,
meine Problem ist. Ich habe ein Interface Generator mit der Methode Zufallszahl. Diese methode Zufallszahl wird in zwei Klassen mit selben namen auf zwei unterschiedliche weise implementiert. Nun möchte ich in der Klasse A diese methode Zufallszahl einmal rufen, aber welcher implementation zum einsatz kommt, soll wahrend der laufzeit festgelegt werden. Wie kann ich das machen? Ich selber komme nicht drauf, kann mir das jemand mit einem beispiel erklaren.
Vielen Dank
 

Viktim

Bekanntes Mitglied
Ein Interface musst du ja immer in einer Klasse Implementieren.
Und wenn du von der Klasse ein Objekt erzeugst, hat dein Objekt ja einen Namen.
Also als Beispiel:
Java:
public class TEST {
  public static void main(String[] args) {
    Generator k1 = new Klasse1();
    Generator k2 = new Klasse2();

    //Hier wird das dann festgelegt:
    System.out.println(k1.getZufallsZahl()); 
    System.out.println(k2.getZufallsZahl());
  }
}
Java:
public interface Generator {
  public int getZufallsZahl();
}
Java:
public class Klasse1 implements Generator {

  @Override
  public int getZufallsZahl() {
    return 0;
  }

}
Java:
public class Klasse2 implements Generator {

  @Override
  public int getZufallsZahl() {
    return 1234;
  }

}

So mein ich das.

Die Methoden getZufallszahl musst du halt anders füllen, aber so wie das hier ist, kannst du sofort sehen, welche Methode ausgeführt wird.

Ich bin mir nicht sicher, ob ich deine Frage richtig verstanden hab. :oops:
 

sengul

Bekanntes Mitglied
Also wie du das gemacht hast, ist es doch so das ich es angebe welche Implementation der methode getZufallsZahl() zum Einsatz kommt oder ? Aber in der Aufgabe steht: Welche konkrete Implementierung zum Einsatz kommt, soll dabei zur Laufzeit festgelegt werden.
 

Viktim

Bekanntes Mitglied
Hmmm was ist denn die Anforderung, wie soll man das denn zur Laufzeit bestimmen? Soll man einen Button drücken oder aus einer Checkbox auswählen, oder einfach irgendeine zufällige Implementation nehmen?
 

sengul

Bekanntes Mitglied
Gute frage, ich verstehe auch ganz was in der aufgabe erwünscht ist! Vielleicht verstehe ich es falsch? unten ist die Aufgabe

Erweitern Sie Ihre Klasse Zufallszahl aus Aufgabe 2 um die Unterstützung für verschiedene Zufallszahl-Generatoren. Erstellen Sie dazu eine Schnittstelle ZufallszahlGenerator, die eine Methode zur Berechnung einer Zufallszahl definiert. Erstellen Sie anschließend mindestens zwei verschiedene Klassen, die diese Schnittstelle implementieren und auf jeweils unterschiedliche Weise eine Zufallszahl erzeugen. Eine mögliche Implementierung können Sie aus Aufgabe 2 übernehmen, die Zufälligkeit der erzeugten Zahlen steht aber bei dieser Aufgabe nicht im Vordergrund (beispielsweise könnte Ihre Implementierung auch stets die gleiche „Zufallszahl“ 42 zurückliefern). Ändern Sie nun die Klasse Zufallszahl so ab, das sie die Berechnung der Zufallszahl an eine beliebige, die Schnittstelle ZufallszahlGenerator implementierende Klasse delegiert. Welche konkrete Implementierung zum Einsatz kommt, soll dabei zur Laufzeit festgelegt und geändert werden können.
 

Joose

Top Contributor
So könnte es gemeint sein ;)
Java:
public class KlasseA {

   private Generator generator;
   
   public void setGenertor(Generator generator) {
       this.generator = generator;
   }
   
   public void doSomething() {
       generator.zufallszahl();
   }
   
   public static void main(String[] args){
       KlasseA a = new KlasseA();
       
       do
       {
           Generator gen = null;
           String implToUse = lies von der Konsole
           if(implToUse.equals("impl1")) {
               gen = new DeineKlasseMitImplementierung1();
           } else if(implToUse.equals("impl2") {
               gen = new DeineKlasseMitImplementierung2();
           } else {
               gen = new StandardImplementierung();
           }
           
           a.setGenerator(gen);
           a.doSomething();
       }while(...);
   }
}

Du hast deine X Klassen, welche das Interface implementieren.
Eine Klasse hat ein Attribut vom Typ des Interfaces. Dieses Attribut kann mit dem Objekt einer Klasse belegt werden, welches das Interface implementiert.
Von welcher deiner X Klasse du nun ein Objekt erstellst könnte zum Beispiel per switch entschieden werden oder ähnlichem.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Leere vererbte Interface-Methoden Allgemeine Java-Themen 8
R Programm führt Methoden gleichzeitig aus Allgemeine Java-Themen 2
Encera Unterschied zweier "toString"-Methoden Allgemeine Java-Themen 1
torresbig Klasse mit extends Calendar über Methoden ändern (Hirnblockade) Allgemeine Java-Themen 7
Sachinbhatt Sind alle Methoden in Java implizit virtuell Allgemeine Java-Themen 2
B Arrays von Methoden möglich? Allgemeine Java-Themen 44
S Mit Methoden kann man definieren für was <T> steht. Geht das auch irgendwie für Variablen? Allgemeine Java-Themen 12
N abstracte klassen methoden Allgemeine Java-Themen 32
G Methoden für die Zukunft sinnvoll? Allgemeine Java-Themen 4
nonickatall Methoden Kann man Klassen/Methoden aus Variablen heraus aufrufen? Allgemeine Java-Themen 6
LimDul Hä? Lambda-Ausdruck geht, Methoden-Referenz nicht Allgemeine Java-Themen 8
B Methoden Java Getter und Setter Methoden Allgemeine Java-Themen 9
Y Java Methoden unterschiedliche Zahlenreihen Allgemeine Java-Themen 2
S Interface Design von HookUp oder Callback Methoden für eigenes Framework Allgemeine Java-Themen 9
F Sich automatisch aufrufende Java-Methoden Allgemeine Java-Themen 2
J Namen von Methoden über Reguläre Ausdrücke bearbeiten Allgemeine Java-Themen 6
D Methoden Methoden anpassen und fehlende Funktionen hinzufügen Allgemeine Java-Themen 475
V Threads Probleme beim Aufrufen von Methoden einer anderen Klasse (Threads) Allgemeine Java-Themen 14
R Statistische Methoden (Mathematik) Aufgabe Allgemeine Java-Themen 9
X Brüche kürzen mittels Methoden und ggT Allgemeine Java-Themen 15
L Operatoren Java Reflections: Alle Methoden einer Klasse aufrufen ohne Exceptions Allgemeine Java-Themen 5
L mehrere Methoden Allgemeine Java-Themen 19
KeexZDeveoper Zugriff auf Methoden vom Server Allgemeine Java-Themen 7
B StAX Parser - mehrere Methoden, ein XML Allgemeine Java-Themen 4
F Operationen/Methoden einen WebService im Browser mit Apache Axis aufrufen Allgemeine Java-Themen 4
A Automatisches Methoden Laufzeiten logging? Allgemeine Java-Themen 7
M Quellcode von Java-Methoden Allgemeine Java-Themen 9
rentasad Design-Frage - Interfaces, Klassen, statische Methoden Allgemeine Java-Themen 3
N HashMap und Methoden richtig einbinden Allgemeine Java-Themen 2
R Variable durch mehrere Methoden ändern und nutzen Allgemeine Java-Themen 17
Q-bert Methoden Methoden in Java Allgemeine Java-Themen 13
D Methoden Java-Aufgabe Allgemeine Java-Themen 2
M Compiler-Fehler Methoden-Referenz Allgemeine Java-Themen 5
X Threads Externe Variablen in Run Methoden verändern Allgemeine Java-Themen 4
F Enum-werte als Methoden-Parameter übergeben Allgemeine Java-Themen 6
N Vererbung Design-Problem mit vorhandenen, von der Klasse unabhängigen Methoden Allgemeine Java-Themen 12
E OOP Objekte und Methoden Allgemeine Java-Themen 1
K Java ruft Methoden nicht der Reihe nach auf Allgemeine Java-Themen 14
N Methoden Methoden einer Klasse auf Grundlage eines Strings aufrufen Allgemeine Java-Themen 6
T Java Array in Methoden Allgemeine Java-Themen 1
D Code für bereitgestellte Methoden Allgemeine Java-Themen 1
P Entity Objekt Methoden vs Service methoden Allgemeine Java-Themen 2
R Signatur von Methoden in eine Datei schreiben? Allgemeine Java-Themen 4
A Methoden verändern Allgemeine Java-Themen 12
F Methoden Arraylist weiterverwenden nach methoden Aufruf Allgemeine Java-Themen 2
J Best Practice Testen von protected Methoden Allgemeine Java-Themen 7
L Methoden "Schiffe versenken" Quellcode in Methoden umwandeln Allgemeine Java-Themen 6
G Matrix reduzieren zwei Methoden Allgemeine Java-Themen 2
Sogomn Best Practice "Doppelte" Methoden Allgemeine Java-Themen 3
Paul15 String Methoden Allgemeine Java-Themen 7
G Methoden BMI -Wert Aufgabe(Methoden) Allgemeine Java-Themen 4
F Testen von Methoden Allgemeine Java-Themen 3
S "Vererben" statischer Felder/Methoden Allgemeine Java-Themen 4
F Methoden in der Enumeration Klasse Allgemeine Java-Themen 1
S Methoden ohne Methodenkopf ?! Allgemeine Java-Themen 5
T Überschreiben von Methoden Allgemeine Java-Themen 6
M Methoden werden in falscher Reihenfolge bearbeitet Allgemeine Java-Themen 10
S Methoden Methoden überschreiben Allgemeine Java-Themen 3
N Threads statische Methoden in Threads Allgemeine Java-Themen 5
O Java-Obfuscator, welcher einzelne Methoden, Klassen und Ordnerstrukturen ausnehmen kann. Allgemeine Java-Themen 1
A also definition von klassen und string methoden und algorithmik Allgemeine Java-Themen 13
X Eigene Annotation - mit Bedingung für ganze Klassen oder Methoden Allgemeine Java-Themen 2
A Threads Lock über mehrere Abschnitte in verschiedenen Methoden Allgemeine Java-Themen 5
S Methoden Frage Allgemeine Java-Themen 2
R Wie kann man diese Methoden in arrays etablieren? Allgemeine Java-Themen 8
M Methoden in Rescources speichern Allgemeine Java-Themen 4
G Synchronisation nicht statischer Methoden Allgemeine Java-Themen 4
A Vererbung finale Methoden überschreiben Allgemeine Java-Themen 24
A Methoden parallelisieren? Allgemeine Java-Themen 2
L Methoden methoden an generischen klassentyp anpassen Allgemeine Java-Themen 5
C Methoden Übernahme von standart nativen Methoden? Allgemeine Java-Themen 9
B Zusammenfassen verschiedener ähnlicher Methoden Allgemeine Java-Themen 8
K JNI: Methoden aus unterschiedlichen Threads aufrufen Allgemeine Java-Themen 3
P Unterschiedliche Clone- Methoden Allgemeine Java-Themen 5
MQue Spezialfrage Überschreiben von Methoden Allgemeine Java-Themen 14
B Methoden Alle Methoden und Variablen aus Java-Dateien auslesen. Allgemeine Java-Themen 7
MiMa Rekursive Methoden Allgemeine Java-Themen 3
S Programm das alle aufgerufenen Methoden ausgibt..? Allgemeine Java-Themen 6
F ListIterator (next & previous methoden) Allgemeine Java-Themen 5
W Frage zu Refactoring statischer Methoden Allgemeine Java-Themen 4
M Methoden/Klassen für andere Projekte Allgemeine Java-Themen 4
T Methoden per String-Namen aufrufen Allgemeine Java-Themen 2
C Kapselung Warum graift man auf Variablen nur über Methoden und nich direkt zu? Allgemeine Java-Themen 10
M Methoden Static Methoden und Thread??? Allgemeine Java-Themen 4
A Methoden ohne Referenzen finden Allgemeine Java-Themen 9
turmaline OOP zwei gleiche Methoden mit kleinen Unterschieden Allgemeine Java-Themen 15
G JUnit Test Methoden in anderen Thread verlagern Allgemeine Java-Themen 4
K Auf Methoden der Runnable Klasse zugreifen Allgemeine Java-Themen 2
S Methoden Class.forName() >> Methoden - Reihenfolge Allgemeine Java-Themen 5
D Passende Name für Methoden finden Allgemeine Java-Themen 3
D Wann sollte ich statische Methoden und Variablen benutzen? Allgemeine Java-Themen 44
A Methoden laufen im Konstruktor, außerhalb allerdings nicht Allgemeine Java-Themen 2
M Generische Methoden mit Java und globale Variablen Allgemeine Java-Themen 9
GianaSisters ArrayList in Methoden übergeben Allgemeine Java-Themen 3
S static methoden Allgemeine Java-Themen 9
J coole Methoden Allgemeine Java-Themen 6
R Methoden in einem Thread unterschiedlich oft ausführen Allgemeine Java-Themen 4
A OOP: Überschreiben/Implementierung von Methoden Allgemeine Java-Themen 5
P Methoden und Werte Allgemeine Java-Themen 17
E Performace/Ausführungszeit von Methoden ermitteln Allgemeine Java-Themen 4

Ähnliche Java Themen

Neue Themen


Oben