Héritage Java
Héritage Java (sous-classe et super-classe)
En Java, il est possible d'hériter d'attributs et de méthodes d'une classe à une autre. Nous regroupons le "concept d'héritage" en deux catégories :
- sous- classe (enfant) - la classe qui hérite d'une autre classe
- superclasse (parent) - la classe héritée de
Pour hériter d'une classe, utilisez le extends
mot clé.
Dans l'exemple ci-dessous, la Car
classe (sous-classe) hérite des attributs et des méthodes de la Vehicle
classe (superclasse) :
Exemple
class Vehicle {
protected String brand = "Ford"; // Vehicle attribute
public void honk() { // Vehicle method
System.out.println("Tuut, tuut!");
}
}
class Car extends Vehicle {
private String modelName = "Mustang"; // Car attribute
public static void main(String[] args) {
// Create a myCar object
Car myCar = new Car();
// Call the honk() method (from the Vehicle class) on the myCar object
myCar.honk();
// Display the value of the brand attribute (from the Vehicle class) and the value of the modelName from the Car class
System.out.println(myCar.brand + " " + myCar.modelName);
}
}
Avez-vous remarqué le protected
modificateur dans Véhicule ?
Nous définissons l' attribut de marque dans Vehicle sur un protected
modificateur d'accès . S'il était défini sur private
, la classe Car ne pourrait pas y accéder.
Pourquoi et quand utiliser "Héritage" ?
- C'est utile pour la réutilisabilité du code : réutilisez les attributs et les méthodes d'une classe existante lorsque vous créez une nouvelle classe.
Astuce : Jetez également un œil au chapitre suivant, Polymorphisme , qui utilise des méthodes héritées pour effectuer différentes tâches.
Le dernier mot-clé
Si vous ne voulez pas que d'autres classes héritent d'une classe, utilisez le mot- final
clé :
Si vous tentez d'accéder à une final
classe, Java générera une erreur :
final class Vehicle {
...
}
class Car extends Vehicle {
...
}
La sortie ressemblera à ceci :
Main.java:9: error: cannot inherit from final Vehicle
class Main extends
Vehicle {
^
1 error)