Héritage Java

Héritage

Pour reprendre les champs et méthodes d'une classe existante vers une autre classe. Vous pouvez personnaliser les nouvelles classes héritées en ajoutant vos propres champs et méthodes. La classe héritée est appelée une "super classe" et la nouvelle classe qui peut être héritée est appelée une "sous-classe". Lors de la définition d'une nouvelle sous-classe à l'aide de l'héritage, utilisez "extend" pour définir la classe.

nom de sous-classe de classe étend le nom de superclasse{
}

Hériter de la superclasse avec ** étend le nom de la superclasse **.

[Exemple] On suppose que le contenu de Bicycle.java et Car.java est dupliqué.

Main.java


class Main {
  public static void main(String[] args) {
~ abrégé ~
 }
}

Bicycle.java


class Bicycle extends Vehicle {

}

Car.java


class Car extends Vehicle{
  
}

Vehicle.java


class Vehicle {
~ abrégé ~//Bicycle.java et voiture.Dupliquer une partie de java
}

Appeler une méthode de superclasse

Les sous-classes héritent des champs et des méthodes des superclasses. Vous pouvez appeler des méthodes d'instance de superclasse sur des instances de sous-classe. [Exemple] Continuez à partir de ce qui précède

Main.java


class Main {
  public static void main(String[] args) {
    Car car = new Car();
    car.setName("Ferrari");  //Je précise le nom de la voiture
    car.setColor("rouge");  //Je précise la couleur de la voiture
    
    Bicycle bicycle = new Bicycle();
    bicycle.setName("Bianchi");  //Spécifiez le nom du vélo
    bicycle.setColor("vert");  //Je précise la couleur du vélo
    
    System.out.println("[Informations sur la voiture]");
    car.printData();

    System.out.println("=================");
    System.out.println("[Informations sur les vélos]");
    bicycle.printData();
  }
}

Champs et méthodes de sous-classe

Les instances de sous-classe peuvent également appeler les méthodes définies dans leur classe et les méthodes de la superclasse. Les instances de superclasse, en revanche, ne peuvent pas appeler de méthodes de sous-classe. Pour une instance d'une sous-classe, la méthode appelée est appelée depuis la sous-classe si elle est définie dans la sous-classe, ou depuis la superclasse si elle n'est pas définie. [Exemple] Continuez à partir de ce qui précède

Main.java


class Main {
  public static void main(String[] args) {
    Car car = new Car();
~ abrégé ~
    int litre = scanner.nextInt();
    car.charge(litre);
~ abrégé ~
    bicycle.printData();
  }
}

Car.java


class Car extends Vehicle{
  public void charge(int litre) {
    System.out.println(litre + "L faire le plein");
    if (litre <= 0) {
      System.out.println("Impossible de faire le plein");
    } else if (litre + this.fuel >= 100) {
      System.out.println("Faire le plein jusqu'à plein");
      this.fuel = 100;
    } else {
      this.fuel += litre;
    }
    System.out.println("Quantité d'essence:" + this.fuel + "L");
  }
}

passer outre

En définissant une méthode portant le même nom que la méthode héritée de la superclasse dans la sous-classe, le contenu de la méthode de la superclasse peut être écrasé, ce qui est appelé ** override **. Lorsque vous appelez une méthode sur une instance d'une sous-classe, elle recherche d'abord cette méthode dans la sous-classe et appelle cette méthode si vous en avez une. En d'autres termes, s'il existe une méthode portant le même nom que la superclasse dans la sous-classe, elle sera exécutée et, par conséquent, le contenu de la méthode sera écrasé. [Exemple] Continuez à partir de ce qui précède

Car.java


class Car extends Vehicle{
  public void charge(int litre) {

  public void printData() {
  System.out.println("Nom:" + this.getName());
  System.out.println("Couleur:" + this.getColor());
  System.out.println("Kilométrage:" + this.getDistance() + "km");
  System.out.println("Quantité d'essence:" + this.getFuel() + "L");
  }
~ abrégé ~
}

Je l'omets, mais Vehicle. Écraser le contenu de java. Véhicule. Supprimez le contenu Java dupliqué. Pour le supprimer, utilisez "super. Nom de la méthode ()". Avec "super. Method name ()", vous pouvez appeler la méthode d'instance de la super classe à partir de la méthode d'instance de la sous-classe. [Exemple] Continuez à partir de ce qui précède

Car.java


class Car extends Vehicle{
  public void charge(int litre) {

  public void printData() {
  super.printData();  //J'efface la partie dupliquée
  System.out.println("Quantité d'essence:" + this.getFuel() + "L");  //Ce n'est pas dupliqué
  }
~ abrégé ~
}

Ensuite, définissez le constructeur dans la sous-classe. Utilisez "super ()" pour appeler le constructeur d'une super classe. [Exemple] Continuez à partir de ce qui précède (appelez le nom et la couleur avec "super ()")

Bicycle.java


class Bicycle extends Vehicle
  Bicycle(String name, String color) {  //Définit un constructeur pour la classe Bicycle
    super(name, color);   //J'utilise super pour appeler le constructeur de super classe
  }
}

Car.java


class Car extends Vehicle{

  Car(String name, String color) {
    super(name, color);
  }
~ abrégé ~
}

Vehicl.java


class Vehicle {
  private String name;
  private String color;
  private int distance = 0;
  
  Vehicle(String name, String color) { //Définit le constructeur de la classe Vehicle
    this.name = name;
    this.color = color;
  }
~ abrégé ~
}

Recommended Posts

Héritage Java
Héritage Java
java (héritage)
[Java] Héritage de classe
À propos de l'héritage Java
[Java] Surcharge / Remplacer / Héritage
Héritage
Héritage
Résumer l'héritage Java (Java Silver 8)
À propos de l'héritage (Java Silver)
Java
Java
[Java] Mémo d'héritage implicite
Mémo d'apprentissage Java (héritage)
Java à partir de débutant, héritage
[Java] Qu'est-ce que l'héritage de classe?
java (héritage du principe is-a)
Apprendre Java (0)
Étudier Java ―― 3
[Java] tableau
Jour 2 orienté objet Muscle Java ~ Héritage ~
[Java] Annotation
Module [Java]
Tableau Java
Astuces Java, astuces
Méthodes Java
Méthode Java
java (constructeur)
À propos de l'héritage
Tableau Java
[Java] ArrayDeque
java (remplacement)
java (méthode)
Journée Java 2018
java (tableau)
Java statique
Sérialisation Java
JAVA payé
Java (ensemble)
tri shell java
Étudier Java -5
java réfléchissant 获 获 举
java (interface)
Mémorandum Java
Étudier Java ―― 1
[Java] Array
[Java] Polymorphisme
Étudier Java # 0
Revue Java
framework java
Fonctionnalités Java
Fonctionnalités Java
java débutant 3
Mémo Java
java (encapsulation)
[Java] Surcharge
Les bases de Java
Décompiler Java
[Java] Annotation
note java