Java - Czy można rozszerzyć wszystkie podklasy klasy o jedną klasę?Java - Czy można rozszerzyć wszystkie podklasy klasy o jedną klasę?
Wyjaśnijmy to na przykładzie, rzeczywisty kod jest bardziej skomplikowany. Mam klasę zwierząt z własną hierarchią klas. Powiedzmy, że ma dwie podklasy: Testarrosa i Viper.
public class Car {
public abstract String getManufacturer();
}
public class Testarossa extends Car{
public String getManufacturer(){
return "Ferrari";
}
}
public class Viper extends Car{
public String getManufacturer(){
return "Dodge";
}
}
Chcę rozszerzyć wszystkie podklasy Car z podklasą RegisteredCar.
public class RegisteredCar extends Car {
private String plateNumber;
public RegisteredCar (String plateNumber){
this.plateNumber=plateNumber;
}
public String getPlateNumber() {
return plateNumber;
}
}
W pewnym momencie powinienem być w stanie utworzyć nowy RegisteredCar określonej podklasy. Coś jak
RegisteredCar c = new RegisteredCar<Viper>("B-3956-AC");
i wywołać c.getManufacturer(), aby uzyskać "Dodge" i c.getPlateNumber(), aby uzyskać B-3956-AC. Oczywiście nadal powinienem być w stanie stworzyć taki przykład. Posiadanie atrybutu w samochodzie o wartości pustej, jeśli nie jest zarejestrowany, nie jest wystarczające dla tego, czego potrzebuję.
* "Załóżmy, że ma dwie podklasy: Goryl i Wilk" * .. Przypuszczam, że powinieneś trzymać się przykładu "Samochód";). – Tom
ale nie, nie można tego zrobić. –
Czy nie można zmienić klasy bazowej Vipera i Testarossy na RegisteredCar? – sfThomas