Ciao sto volgendo un esercizio sulle classi astratte e sul polimorfismo...e mi sono chiesto.,..se una superclasse è stratta(quoindi non posso istanziarla)...come possono le sottoclassi essere assegante alla superclasse? Cioè se ho il seguente codice:
codice:
abstract class Animali{
String tipo;
String nome;
Animali(String tipo,String nome){
this.tipo=tipo;
this.nome= nome;
}
public String getNome(){
return nome;
}
public String getTipo(){
return tipo;
}
}
codice:
class Mammifero extends Animali{
Animali a;
Mammifero(String tipo){
super(tipo,null);
}
//assegno ad Animali il Gatto
public void setAssegno(Gatto g){
a=g;
}
}
codice:
class Gatto extends Animali{
Gatto(String nome){
super(null,nome);
}
}
In pratica la gerarchia è:
codice:
Animali(abstract)
| |
| |
Mammifero Gatto
Nella classe setAssegno(Gatto g) è giusto assegare in questo modo la classe gatto ad animali(che è abstract)?