scusate se scasso ancora, ma cosa sbagli qui?
codice:
class Regolare{
Object f;
Regolare(int lati,float lunghezza){
switch(lati){
case 3:
f = new Triangolo(lati,lunghezza);
break;
case 4:
f = new Quadrato(lati,lunghezza);
break;
}
}
Object getObj(){
return f;
}
}
class Triangolo{
int lati;
float lunghezza;
Triangolo(int a,float b){
lati = a;
lunghezza = b;
}
float perimetro(){
return (lati*3);
}
}
class Quadrato{
int lati;
float lunghezza;
Quadrato(int a,float b){
lati = a;
lunghezza = b;
}
float perimetro(){
return (lati*4);
}
}
class poligono{
public static void main(String[] args){
Object forma;
Regolare r = new Regolare(3,5.7);
forma = r.getObj();
if(forma istanceof(Triangolo)){
Triangolo f = (Triangolo)forma;
}else if(forma istanceof(Quadrato)){
Quadrato f = (Quadrato)forma;
}
System.out.print(f.perimetro());
}
penso che sia un problema di tipi di dato, ma nn so dove sbaglio...