public class Veicolo
{
public String modello, colore;
public int annoDiImmatr;
public Veicolo
(String modello,
String colore,
int annoDiImmatr
)
{
this.
modello=modello;
this.
colore=colore;
this.
annoDiImmatr=annoDiImmatr;
}
public String toString
()
{
String s=
"";
s=s+
"Modello: "+modello+
" - Colore: "+colore+
" - Anno: "+annoDiImmatr;
return s;
}
}
public class Auto
extends Veicolo
{
public int numPorte;
public Auto
(String modello,
String colore,
int annoDiImmatr,
int numPorte
)
{
super (modello, colore, annoDiImmatr
);
this.
numPorte=numPorte;
}
public String toString
()
{
return super.
toString ()+
" - Numero porte: "+numPorte;
}
}
public class Taxi
extends Auto
{
public String codice;
public Taxi
(String modello,
String colore,
int annoDiImmatr,
int numPorte,
String codice
)
{
super (modello, colore, annoDiImmatr, numPorte
);
this.
codice=codice;
}
public String toString
()
{
return super.
toString ()+
" - Codice: "+codice;
}
}
public class Moto
extends Veicolo
{
public String categoria;
public Moto
(String modello,
String colore,
int annoDiImmatr,
String categoria
)
{
super (modello, colore, annoDiImmatr
);
this.
categoria=categoria;
}
public String toString
()
{
return super.
toString ()+
" - Categoria: "+categoria;
}
}
public class Prova
{
public static void main
(String[] args
)
{
Veicolo v=
new Veicolo
("Opel Corsa",
"Rosso",
2000);
Auto a=
new Auto
("Opel Vectra",
"Blu",
2001,
5);
Taxi t=
new Taxi
("BMW 720",
"Bianco",
2008,
4,
"Cicogna 2");
Moto m=
new Moto
("Honda SH 150",
"Verde",
2007,
"Scooter");
System.
out.
println (v
);
System.
out.
println (a
);
v=a;
System.
out.
println (v
);
//viene invocato il metodo toString della classe Auto...
System.
out.
println (t
);
System.
out.
println (m
);
}
}