0.1 Syntaxe: public class Fille extends Mere { ...
exemple: DBShape { x, y, moveVertical(), draw(), drawSpec() } -
Circle extends DBShape { diameter, drawSpec() } -
Square extends DBShape { side, drawSpec() }
0.2 Hérite de : tous les attributs et méthodes (non privées) sauf les constructeurs,
mais on ne peut accéder aux attributs privés, ni redéfinir les méthodes privées.
0.3 protected : déconseillé pour les attributs, OK pour les méthodes,
super.methode(); - super(...); - @Override
0.4 type déclaré/constaté :
- conversion: du type déclaré, car on ne peut changer la nature de l'objet (type constaté)
- liaison dynamique ==> toujours la méthode la plus appropriée
- Circle c = obj; ==> erreur de compilation ≠
Circle c = (Circle)obj; ==> erreur à l'exécution (exception)
- obj.getClass() ≠ obj instanceof UneClasse
0.5 Object : mère de toutes les classes, méthodes à redéfinir