« Programmation Ruby/Héritage » : différence entre les versions
Contenu supprimé Contenu ajouté
exemple héritage, accession aux méthodes parentes/héritière |
<source> + ortho + formulation standard POO |
||
Ligne 2 :
[[Programmation Ruby/Objets|<< Retour à programmation objet]]
L'héritage permet de créer une classe à partir d'une autre pour l'enrichir, ou la spécialiser. Une classe (classe dérivée, ou classe fille) hérite d'une autre classe (classe de base, ou classe mère).
On peut toujours utiliser les méthodes de la (des) classe(s)
L'opérateur <code><</code> précède le nom de la classe
== Exemple ==
La classe <code>Point</code> vue précédemment :
<source lang="ruby">
def initialize(
end
def coords </source>
peut être dérivée en une classe <code>PointColore</code> représentant un point coloré.
Cette classe possède donc un attribut supplémentaire pour la couleur :
<source lang="ruby">
def initialize( x, y, couleur )
super(x,y) # appel au constructeur de la classe Point </source>
Lorsqu'on crée une instance de la classe
<source lang="ruby">
# => couleur : rouge </source>
Et les méthodes de la classe
<source lang="ruby">
=> x : 1▼
# =>
</source>
Par contre, la classe
<source lang="ruby">
p1 = Point.new
p1.couleur
=> NoMethodError: undefined method `couleur' for #<Point:0xb7c059b0 @x=0, @y=0>
</source>
|