Héritage
 Une classe est une sorte d'abstraction et peut définir une chose générale ou un cas particulier.
Par exemple, une voiture est un type de véhicule et l'on peut décrire ce qu'est un véhicule, et ce qu'est une voiture ou un camion, en décrivant les attributs d'un véhicule, puis en redéfinissant la classe dans le cas d'une voiture ou un camion.
Véhicule sera nommé la "superclasse" ou "classe de base" et Voiture et Camion seront les sous-classes de Véhicule. Attributs et méthodes de la superclasse sont aussi ceux de la sous-classe.

La syntaxe de l'héritage est:

class nom is supernom

Ce qui signifie que les instances de la classe "nom" héritent des attributs et méthodes de la superclasse "supernom".
Cela est vrai même pour les attributs et méthodes statiques.


Exemple d'héritage, par les classes "voiture" et "camion",
de la classe plus générale "véhicule".
class Vehicule
  int fuel
  void Vehicule()
    fuel = 100
  return
/class

class Voiture is Vehicule
  int passagers
  void Voiture()
    passagers = 3
    fuel = 50
  return
/class

class Camion is Vehicule
  int charge
  void Camion()
    fuel = 200
    charge = 1000
  return
/class

Camion bibendum
Voiture daisy

print bibendum.charge  ` attribut de la classe Camion
print
bibendum.fuel  ` attribut de la superclasse Vehicule
print bibendum.passagers  ` mauvais! passagers non accessible à Camion!
print daisy.passagers  ` bon, passagers est attribut de Voiture
Affiche: > 1000
> 200
> 3


 Exercices

1) Ecrire la classe Buggy à deux places, choisir dans les classes ci-dessus, la classe dont elle hérite, les attributs et méthodes qu'il faut ajouter ou changer.
Créer une instance et afficher le nombre de passagers.

Réponse