Java-Vererbung

Erbe

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
}

Aufruf einer Superklassenmethode

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

Unterklassenfelder und -methoden

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

überschreiben

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

Java-Vererbung
Java-Vererbung
Java (Vererbung)
[Java] Klassenvererbung
Über Java-Vererbung
[Java] Überladen / Überschreiben / Vererbung
Erbe
Erbe
Fassen Sie die Java-Vererbung zusammen (Java Silver 8)
Informationen zur Vererbung (Java Silver)
Java
Java
[Java] Implizites Vererbungsprotokoll
Java-Lernnotiz (Vererbung)
Java ab Anfänger, Vererbung
[Java] Was ist Klassenvererbung?
Java (Vererbung von is-ein Prinzip)
Java lernen (0)
Java studieren ―― 3
[Java] -Array
Muskel Java Objektorientierter Tag 2 ~ Vererbung ~
[Java] Anmerkung
[Java] Modul
Java-Array
Java-Tipps, Tipps
Java-Methoden
Java-Methode
Java (Konstruktor)
Über die Vererbung
Java-Array
[Java] ArrayDeque
Java (überschreiben)
Java (Methode)
Java Day 2018
Java (Array)
Java statisch
Java-Serialisierung
JAVA hat bezahlt
Java (gesetzt)
Java-Shell-Sortierung
Java studieren -5
Java reflektierend 获 获 举
Java (Schnittstelle)
Java-Memorandum
Java studieren ―― 1
[Java] Array
[Java] Polymorphismus
Java # 0 studieren
Java-Überprüfung
Java-Framework
Java-Funktionen
Java-Funktionen
Java Anfänger 3
Java-Memo
Java (Kapselung)
[Java] Überladung
Java-Grundlagen
Java dekompilieren
[Java] Anmerkung
Java Note