Howdy!
Ich habe 3 Klassen:
Vehicle, Bike und Car. Bike und Car sind jeweils von Vehicle abgeleitet. Jetzt möchte ich in Bike und Car jeweils den Typ festlegen (Tandem, Rennrad, ... für Fahrrad --- Kleinwagen, Mittelklasse, ... für Auto) und habe dazu zunächst in Bike und Car je ein Enum geschrieben.
Jetzt will ich eine Methode nutzen, die per Zufall festlegt, welcher Typ das Bike bzw. Car sein soll, die ich typGenerieren() nenne.
Da ich aber für jede Klasse ein eigenes Enum habe, muss ich auch für jede Klasse die Methode quasi neu schreiben. Ich versuche jetzt also, in Vehicle die Methode unterzubringen und so zu verallgemeinern, dass ich in Bike und Car diese aufrufen kann:
Jetzt weiss ich also nicht, wie ich das Enum so allgemein gestalten kann, dass ich damit eine einzige Methode schreibe. Denn wenn ich die Methode für jede Klasse neu schreibe und in Vehicle belasse, habe ich keinen Code gespart, sondern nur die Methode zentralisiert.
Wer weiss Rat?
HAVE PHUN!
Ich habe 3 Klassen:
Vehicle, Bike und Car. Bike und Car sind jeweils von Vehicle abgeleitet. Jetzt möchte ich in Bike und Car jeweils den Typ festlegen (Tandem, Rennrad, ... für Fahrrad --- Kleinwagen, Mittelklasse, ... für Auto) und habe dazu zunächst in Bike und Car je ein Enum geschrieben.
Jetzt will ich eine Methode nutzen, die per Zufall festlegt, welcher Typ das Bike bzw. Car sein soll, die ich typGenerieren() nenne.
Da ich aber für jede Klasse ein eigenes Enum habe, muss ich auch für jede Klasse die Methode quasi neu schreiben. Ich versuche jetzt also, in Vehicle die Methode unterzubringen und so zu verallgemeinern, dass ich in Bike und Car diese aufrufen kann:
Code:
public class Bike extends Vehicle{
public Bike(){
typGenerieren([ENUM Fahrradtyp]);
}
(ebenso Klasse Car)
-------------------------------------------
public class Vehicle{
public enum BikeType{
RENNRAD, TANDEM,...;
}
public enum CarType{
KLEINWAGEN, MITTELKLASSE, ...;
}
public [ENUM] typGenerieren([ENUM] enumwert){
int zufall;
zufall = (int)(Math.random * 3) + 1);
if (zufall == 1){
xxx
Jetzt weiss ich also nicht, wie ich das Enum so allgemein gestalten kann, dass ich damit eine einzige Methode schreibe. Denn wenn ich die Methode für jede Klasse neu schreibe und in Vehicle belasse, habe ich keinen Code gespart, sondern nur die Methode zentralisiert.
Wer weiss Rat?
HAVE PHUN!