Héritage Héritage

1. Définition

Comme en Java, on peut étendre une classe unique et hériter de ses variables et méthodes. Pour ce faire, il suffit d’ajouter le mot-clé extends suivi de la classe parent et de ses arguments. Héritage:extends

Prenons comme exemple une classe Appartement qui étend la classe Maison définie plus tôt. Un Appartement a toujours une chambre et prend comme argument un lieu.

class Appartement(lieu: String) extends Maison(1, lieu) 
// defined class Appartement 

Une instance de cette classe aura accès au champ lieu défini comme argument de la classe enfant, mais aussi à tous les champs définis dans la classe parent, que ce soit le nombre de chambres ou la description.

val appartement = new Appartement("Lyon") 
// appartement: Appartement = Appartement@75f3e7b1 
 
appartement.lieu 
// res249: String = Lyon 
 
appartement.description 
// res250: String = Maison à Lyon avec 1 chambres 
 
appartement.chambres 
// res251: Int = 1 

L’objet obtenu est une instance à la fois de la classe Appartement et de la classe Maison.

appartement.isInstanceOf[Appartement] 
// res252: Boolean = true 
 
appartement.isInstanceOf[Maison] 
// res253: Boolean = true 

On peut créer un objet Maison à partir de cet appartement en forçant son type lors de l’instanciation, mais l’inverse n’est pas possible. Lorsqu’on essaye...

couv_EPSCALA.png

Découvrez 

le livre :

Aussi inclus dans nos :

Précédent
Classes
Suivant
Objets singletons