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
}
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();
}
}
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");
}
}
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