En général, il est préférable de créer ses propres constructeurs.
Un constructeur d'une extension de classe peut appeler explicitement un constructeur de sa super classe. L'exemple suivant montre comment et dans quel ordre les constructeurs sont appelés en cas d'héritage.
class X { protected int xMask = 0x00ff; protected int fullMask; public X(){ fullMask = xMask; } public int mask(int orig){ return (orig & fullMask); } } class Y extends X{ protected int yMask = 0xff00; public Y(){ fullMask |= yMask; } }
xMask | yMask | fullMask | |
valeur par défaut des champs | 0 | 0 | 0 |
appel constructeur pour Y | 0 | 0 | 0 |
appel constructeur pour X | 0 | 0 | 0 |
initialisation champ X | 0x00ff | 0 | 0 |
constructeur X | 0x00ff | 0 | 0x00ff |
initialisation champ Y | 0x00ff | Oxff00 | 0 |
constructeur Y | 0x00ff | 0xff00 | 0xffff |