Java - È possibile estendere tutte le sottoclassi di una classe con una singola classe?Java - È possibile estendere tutte le sottoclassi di una classe con una singola classe?
Spieghiamo che con un esempio, il codice effettivo è molto più complesso. Ho una classe di animali con una sua gerarchia di classi. Diciamo che ha due sottoclassi: Testarrosa e 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";
}
}
Desidero estendere tutte le sottoclassi Car con una sottoclasse RegisteredCar.
public class RegisteredCar extends Car {
private String plateNumber;
public RegisteredCar (String plateNumber){
this.plateNumber=plateNumber;
}
public String getPlateNumber() {
return plateNumber;
}
}
A un certo punto, dovrei essere in grado di creare una nuova registrazione di una sottoclasse specifica. Qualcosa di simile
RegisteredCar c = new RegisteredCar<Viper>("B-3956-AC");
e chiamare il c.getManufacturer() per ottenere "Dodge" e c.getPlateNumber() per ottenere B-3956-AC. Ovviamente, dovrei comunque essere in grado di creare un Car c = new Viper();
Questo è un esempio. Avere un attributo in Auto con valore null se non registrato non è sufficiente per ciò di cui ho bisogno.
* "Diciamo che ha due sottoclassi: Gorilla e Lupo" * .. Immagino che dovresti attenersi al tuo esempio di 'Car';). – Tom
ma no, non può essere fatto. –
Non è possibile cambiare la classe base di Viper e Testarossa in RegisteredCar? – sfThomas