Generic Prüfungsvorbereitung

murriiii

Mitglied
Hallo lieber Java-Forum 🙂,

hab eine etwas schwammige Frage... Bereite mich derzeit auf meine Info Prüfung vor und habe noch meine Schwierigkeiten mit Generics... Ich habe leider noch nicht so richtig verstanden wie ich Generics benutzen soll/kann... Ich kann mich an eine Aufgabe erinnern die irgendwann (so oder so ähnlich) mal im laufe des Semester gesehen habe... Aber leider keine Ahnung wie das Funktionieren soll... Die Aufgabe war ungefähr so:

Man hatte 3 Klassen, unter anderem:

-Klasse eins:

Java:
public class Boot {
    
    public void schwimmend(){
        System.out.println("Schwimmend umziehen");
    }
    
}

-Klasse zwei:

Java:
public class Auto {
    
    public void fahrend(){
        System.out.println("Fahrend umziehen");
    }
    
}

- und die Dritte Klasse:

Java:
public class Umzug {
    
}

Jetzt soll irgendwie Auto und Boot zur Klasse Umzug mit Hilfe von Generics implemetiert werden... Allerdings wenn man fahrend() aufruft, soll die Klasse Umzug die Methode schwimmend() nicht mehr erlauben (und umgekehrt)...

Konnte hoffentlich erläutern was ich meine ^^... Danke schon mal in voraus...
 
Ich kann mir leider keinen Reim aus deiner Aufgabenbeschreibung machen. Hättest du nicht noch genauere Angaben zur Aufgabe? Oder kannst du zumindest sagen, dass die 3 Klassen genau so gegeben waren?
 
Tut mir Leid 🙁... Genauere Angaben habe ich leider nicht... Ist nämlich eine weile her...

Ich weiß auf jedenfall das die zwei Methoden so gegeben waren... Ob die beide in Seperate Klassen waren oder nicht, bin ich mir leider nicht mehr sicher... Wir sollten in der Klasse Umzug ermitteln wie umgezogen werden soll... Wenn man Überland umzieht, soll die Methode schwimmend() benutzt werden... Der Compiler soll dann allerdings fahrend() nicht mehr akzeptieren... Und wenn fahrend() umgezogen werden soll, soll schwimmend() nicht mehr akzeptiert werden... Und das sollten wir mit Hilfe von Generics lösen... Mehr zur Aufgabenstellung etc. weiß ich leider nicht mehr... Vllt ein Idee wie man das überhaupt lösen könnte??
 
So, ich hab mal was mit Generics zusammengeschustert 😉.

Code:
class A<T extends Fahrzeug> {
	private T t;
	public A() {
		t.fahren();
	}
}

interface Fahrzeug {
	public void fahren();
}

class Auto implements Fahrzeug {
	public void fahren() {
		System.out.println("fahren");
	}
}

class Boot implements Fahrzeug {
	public void fahren() {
		System.out.println("schwimmen");
	}
}

Es kommen zumindest Generics vor, auch wenn ich dazu die Methoden umbenennen musste und ein Interface eingeführt habe 🙂.
 

Zurück
Oben