|
Modification d'une méthode
héritée
Dans le cas où la méthode de la sous-classe ne doit
pas s'éxecuter de la même manière que dans sa
super-classe, il faut la redéfinir en lui donnant le même
nom et les mêmes paramètres que dans la super-classe.
public class Monotreme
{
void seDeplacer()
{
this.marcher4pattes();
}
}
public class Marsupilami
extends Monotreme
{
void seDeplacer()
{
this.marcher4pattes();
this.marcher2pattes();
this.bondir();
this.nager();
}
}
Pareillement, il peut être nécessaire de modifier
l'ensemble des méthodes héritées par une sous-classe.
Dès lors, il faut modifier la déclaration de la sous-classe:
elle n'étend plus sa super-classe, elle l'implémente.
L'héritage se fait avec l'instruction implements:
public class Mammifere
{
void corps()
{
this.sangChaud();
}
}
public class Monotreme
implements Mammifere
{
void seDeplacer()
{
this.marcher4pattes();
this.marcher2pattes();
this.bondir();
this.nager();
}
}
Héritage "multiple"
Notons que Java ne permet de réaliser que l'héritage
simple. L'héritage multiple (où la sous-classe hérite
de plusieurs super-classes) est possible mais ne transmet pas les
déclarations des fonctions d'une classe: seul l'héritage
multiple de types est possible, l'héritage multiple d'implémentation
étant pour sa part interdit.
On est obligé de créer le code pour les différentes fonctions. On
ne parle alors plus de super-classe mais d'interface. L'interface
est déclarée comme une super-classe, à ceci
près qu'elle utilise le mot-clé interface,
et que le code des fonctions n'y est pas défini.
Une même classe peut implémenter plusieurs interfaces, mais ne peut
étendre qu'une seule classe abstraite ou concrète:
public interface Mere
{
void seNourir();
...
}
class Enfant extends humain
implements Mere, Pere
{
void seNourir()
{
...
}
...
}
L'héritage est un vaste sujet. Nous y reviendrons dans de
prochains articles dédiés à Java...
Page 1
| 2
|