Originariamente inviato da andbin
super vuol dire "la super-classe". Poi se usi super(.....eventuali....) in un costruttore vuol dire invocare un costruttore nella super-classe, mentre super.metodo(.....eventuali....) vuol dire invocare un metodo nella super-classe.
super(......) invoca un costruttore della super-classe. Che può avere 0, 1, 2, ..... N parametri. E glieli devi passare. Tutto qui.
Non ho ben capito ..
Nell'esempio specifico se io volessi aggiungere una proprietà alla classe 'padre' (NumeroMotori), e tale proprietà volessi riprenderla nella sottoclasse .. come dovrei fare ?
codice:
class Veicolo // extends Object
{
private int NumeroPosti;
private int NumeroMotori;
public Veicolo(int NP, int NM)
{
NumeroPosti = NP;
NumeroMotori = NM;
}
public int getNumeroPosti()
{ return NumeroPosti; }
public int getNumeroMotori()
{ return NumeroMotori; }
}
class VeicoloTerrestre extends Veicolo
{
private int NumeroRuote;
public VeicoloTerrestre(int NP, int NM, int NR)
{
super(NP); // chiama il costruttore del padre
super(NM); // chiama il costruttore del padre
NumeroRuote = NR;
}
public int getNumeroRuote()
{ return NumeroRuote; }
}
class VeicoloMarino extends Veicolo
{
private long Stazza;
public VeicoloMarino(int NP, int NM, long S)
{
super(NP);
super(NM);
Stazza = S;
}
public long getStazza()
{ return Stazza; }
}