E' possibile estendere una classe senza conoscere nulla dell'implementazione della classe estesa, ma solo il contratto.

La classe estesa eredita tutti i campi e tutti i metodi (ma non i costruttori) definiti nella classe padre (ciò non implica che essi siano accessibili, dipende dalla visibilità)

super: due utilizzi...

  1. Come costruttore: per richiamare un costruttore della superclasse nel codice del costruttore della sottoclasse
  2. Come pseudovariabile:
    1. per invocare un metodo della superclasse nel codice della sottoclasse
    2. per accedere ai campi della superclasse

Overloading

La possibilità di avere metodi o costruttori con lo stesso nome ma segnatura diversa

Overriding

Quando si riscrive in una sottoclasse un metodo della superclasse con la stessa segnatura (nome metodo e argomenti)

Classi Astratte

Dichiarate mediante la parola chiave abstract prima di classe

public abstract class Figura{
//...
}

protected

Il suo significato è legato all'ereditarietà