Die Felder und Methoden einer vorhandenen Klasse in eine andere Klasse übernehmen. Sie können die neuen geerbten Klassen anpassen, indem Sie Ihre eigenen Felder und Methoden hinzufügen. Die geerbte Klasse wird als "Superklasse" bezeichnet, und die neue Klasse, die geerbt werden kann, wird als "Unterklasse" bezeichnet. Verwenden Sie beim Definieren einer neuen Unterklasse mithilfe der Vererbung "Erweitert", um die Klasse zu definieren.
Der Name der Klassenunterklasse erweitert den Namen der Oberklasse{
}
Erben Sie die Oberklasse mit ** erweitert den Oberklassennamen **.
[Beispiel] Es wird davon ausgegangen, dass die Inhalte von Bicycle.java und Car.java dupliziert sind.
Main.java
class Main {
public static void main(String[] args) {
~ Abkürzung ~
}
}
Bicycle.java
class Bicycle extends Vehicle {
}
Car.java
class Car extends Vehicle{
}
Vehicle.java
class Vehicle {
~ Abkürzung ~//Bicycle.Java und Auto.Dupliziere einen Teil von Java
}
Unterklassen erben die Felder und Methoden von Oberklassen. Sie können Instanzmethoden der Oberklasse für Instanzen der Unterklasse aufrufen. [Beispiel] Fahren Sie oben fort
Main.java
class Main {
public static void main(String[] args) {
Car car = new Car();
car.setName("Ferrari"); //Ich gebe den Namen des Autos an
car.setColor("rot"); //Ich gebe die Farbe des Autos an
Bicycle bicycle = new Bicycle();
bicycle.setName("Bianchi"); //Geben Sie den Namen des Fahrrads an
bicycle.setColor("Grün"); //Ich gebe die Farbe des Fahrrads an
System.out.println("[Fahrzeuginformationen]");
car.printData();
System.out.println("=================");
System.out.println("[Fahrradinformationen]");
bicycle.printData();
}
}
Unterklasseninstanzen können auch die in ihrer Klasse definierten Methoden und die Methoden der Oberklasse aufrufen. Superklasseninstanzen können dagegen keine Unterklassenmethoden aufrufen. Für eine Instanz einer Unterklasse wird die aufgerufene Methode aus der Unterklasse aufgerufen, wenn sie in der Unterklasse definiert ist, oder aus der Oberklasse, wenn sie nicht definiert ist. [Beispiel] Fahren Sie oben fort
Main.java
class Main {
public static void main(String[] args) {
Car car = new Car();
~ Abkürzung ~
int litre = scanner.nextInt();
car.charge(litre);
~ Abkürzung ~
bicycle.printData();
}
}
Car.java
class Car extends Vehicle{
public void charge(int litre) {
System.out.println(litre + "L tanken");
if (litre <= 0) {
System.out.println("Kann nicht tanken");
} else if (litre + this.fuel >= 100) {
System.out.println("Tanken Sie bis voll");
this.fuel = 100;
} else {
this.fuel += litre;
}
System.out.println("Benzinmenge:" + this.fuel + "L");
}
}
Durch Definieren einer Methode mit demselben Namen wie die von der Oberklasse in der Unterklasse geerbte Methode kann der Inhalt der Oberklassenmethode überschrieben werden, was als ** Überschreiben ** bezeichnet wird. Wenn Sie eine Methode für eine Instanz einer Unterklasse aufrufen, sucht sie zuerst in der Unterklasse nach dieser Methode und ruft diese Methode auf, falls Sie eine haben. Mit anderen Worten, wenn es eine Methode mit demselben Namen wie die Oberklasse in der Unterklasse gibt, wird sie ausgeführt, und als Ergebnis wird der Inhalt der Methode überschrieben. [Beispiel] Fahren Sie oben fort
Car.java
class Car extends Vehicle{
public void charge(int litre) {
public void printData() {
System.out.println("Name:" + this.getName());
System.out.println("Farbe:" + this.getColor());
System.out.println("Kilometerstand:" + this.getDistance() + "km");
System.out.println("Benzinmenge:" + this.getFuel() + "L");
}
~ Abkürzung ~
}
Ich lasse es weg, aber Fahrzeug. Überschreiben des Inhalts von Java. Fahrzeug. Löschen Sie den duplizierten Java-Inhalt. Verwenden Sie zum Löschen "super. Method name ()". Mit "super. Method name ()" können Sie die Instanzmethode der Superklasse aus der Instanzmethode der Unterklasse aufrufen. [Beispiel] Fahren Sie oben fort
Car.java
class Car extends Vehicle{
public void charge(int litre) {
public void printData() {
super.printData(); //Ich lösche den duplizierten Teil
System.out.println("Benzinmenge:" + this.getFuel() + "L"); //Dies wird nicht dupliziert
}
~ Abkürzung ~
}
Definieren Sie als Nächstes den Konstruktor in der Unterklasse. Verwenden Sie "super ()", um den Konstruktor einer Superklasse aufzurufen. [Beispiel] Weiter von oben (Name und Farbe mit "super ()" aufrufen)
Bicycle.java
class Bicycle extends Vehicle
Bicycle(String name, String color) { //Definiert einen Konstruktor für die Fahrradklasse
super(name, color); //Ich benutze super, um den Super-Klassenkonstruktor aufzurufen
}
}
Car.java
class Car extends Vehicle{
Car(String name, String color) {
super(name, color);
}
~ Abkürzung ~
}
Vehicl.java
class Vehicle {
private String name;
private String color;
private int distance = 0;
Vehicle(String name, String color) { //Definiert den Konstruktor für die Fahrzeugklasse
this.name = name;
this.color = color;
}
~ Abkürzung ~
}
Recommended Posts