Héritage de code et classe abstraite

Relation entre Interface-Interfaces, Classe-Interfaces.

Nous avons vu dans le cours précédent la notion de classe et la notion d’interface ainsi que la relation d’héritage de type.
Relation entre une interface et des interfaces: Une interface peut-être une extension d’une ou plusieurs autres interfaces. Dans ce cas, une interface peut-être un sous-type de plusieurs autres types. Dans ce cas, il y a un héritage de type entre le sous-type et le sur-type.

Considérons par exemple, le code suivant inspiré des TD:

public class FormeFacto {
private Point2D centre;
}
public FormeFacto(Point2D p)
{
centre = p.creerCopie();
}
public void translate(Point2D p, Point2D q)
{
centre.translate(p,q);
}
public Point2D donneCentre()
{
return centre.creeCopie();
}

Propriété de l’héritage de Code.

1. Les propriétés de l’héritage de type (principe de substitution et inclusion de IFP) sont impliquées par l’héritage de code.
2. A l’intérieur de la structure d’un sous-type, il y a la structure du sur-type. Cette structure n’est pas toujours accessible, mais elle est toujours présente..

Le mot clef protected.

Nous avons vu dans les premiers cours que pour contrôler l’acces à l’information (service ou variables). On pouvait utiliser les mots clefs private et public. Les informations private ne sont accessibles qu’à l’intérieur de la classe qui les définit, les informations public sont accessible par tout le monde. La relation d’héritage de code crée un lien particulier entre une sous-classe et sur classe. Il peut-être nécessaire d’accéder depuis la sous classe à une partie de l’implémentation de la surclasse. Sans pour autant que l’information soit visible pour tout le monde. En effet comme une partie du code peut-être partagée par la sous classe, il est parfois nécessaire qu’elle puisse accéder à la structure du sur-type qui la constitue en partie. Pour permettre l’accès à l’information de la surclasse depuis la sous-classe, il faut utiliser le mot clef protected lorsqu’on déclare l’information.

Classe Abstraite.

Nous avons vu qu’une classe est non instanciable si elle ne fournit pas l’intégralité du code pour implémenter l’ensemble de ces services publics. Qu’une interface n’est pas instanciable car elle n’implémente aucun service public. Une classe peut tout de même présenter une implémentation de certains services publics qui peut être factorisée pour l’ensemble de ses sous-classes, mais elle n’est pas capable de fournir l’intégralité de l’implémentation des services.

Héritage de code et classe abstraite

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *