Héritage
- est incorrecte
- déclare une classe visible d'un autre package
- déclare que Sword hérite de Weapon
- déclare que Sword met en œuvre Weapon
- Le programme ne compile pas
- Miaou!
- MiaouTchoum!
- Le programme compile, mais se termine sur une erreur
- Le programme ne compile pas
- Miaou!
- MiaouTchoum!
- Le programme compile, mais se termine sur une erreur
- Le programme ne compile pas
- Miaou!
- MiaouTchoum!
- Le programme compile, mais se termine sur une erreur
- Maiou! 0
- Miaou! 42
- MiaouTchoum! 0
- MiaouTchoum! 42
Miaou! 0. La figure illustre l'état d'un Chat et d'un ChatEnrhume. Dans notre exemple, chat est un ChatEnrhume, mais ChatEnrhume ne surdéfinit pas ditMiaou() (ChatEnrhume ne définit que la méthode ditAtchoum()). L'exécution de chat.ditMiaou() effectue donc un appel au ditMiaou() de Chat. Ensuite, la portée lexicale des champs et variables nous dit que le x utilisé dans le constructeur de ChatEnrhume est celui de ChatEnrhume et non celui de Chat : le x de Chat conserve la valeur 0 après l'exécution du constructeur de ChatEnrhume. Dans chat.ditMiaou(), x vaut donc 0.
- Le programme ne compile pas
- Miaou!
- MiaouTchoum!
- Le programme compile, mais se termine sur une erreur