Retour
Cours précédent
Cours suivant

Héritage

Véhicule :

Plane :

Un véhicule et un avion possède des attributs similaire

Héritage de classes

Exprimer une relation de similarité entre deux classes.

class Vehicule {
	int speedMax;
	int passengers;
}

class Plane {
	int speedMax;
	int passengers;
	int altitudeMax;
}

Plane “est un” Véhicule. (mais un Vehicule n’est pas forcément un Plane)

En Java :

class Vehicule {
	int speedMax;
	int passengers;
}

class Plane extends Vehicule {
	//La classe Plane a ainsi les attributs de sa classe mère
	int altitudeMax;
}

La classe Plane étend la classe Vehicule.
Plane est une sous-classe de Vehicule.
Vehicule est la classe mère de Plane.
La classe Plane est une spécialisation de la classe Vehicule.

Il est possible de faire des héritage multiple (hériter d’une classe qui hérite elle-même d’une autre classe). On hérite ainsi de tout les attributs et méthodes de ses classes mères.

On ne peux hériter que d’une seule classe.

Tout les classes en Java héritent implicitement de la classe Object.

Redéfinition de méthode

class Vehicule {
	int draw(){
		//some code
	}
}

class Plane extends Vehicule {
	@Override
	int draw(){
		//some other code
	}
}

Plane redéfini la méthode draw car elle a la même signature.
Attention à ne pas confondre surcharge et redéfinition.

Il est possible de faire de la redéfinition de méthode avec des types de retour covariants. Redéfinir une méthode en changeant le type de retour à la seule condition que le nouveau type de retour soit une sous-classe de l’originel.

Polymorphisme

Manipuler un objet sans connaître tout à fait son type.
-> Late Binding (fr: Ligature dynamique)

Repose sur :

C’est une sorte d’encapsulation de la classe.


Retour
Cours précédent
Cours suivant