Über Java-Polymorphismus super ()

Ich habe den Polymorphismus noch einmal untersucht, also werde ich ihn zusammenfassen Dieses Mal möchte ich super vertiefen und verstehen ()

** Ziel **

super () ist der Konstruktor der übergeordneten Klasse

** Fazit **

Ich werde es mit einem konkreten Beispiel versuchen

Konkretes Beispiel

Person.java


public class Person {
    Person() {
        System.out.println("Ich bin menschlich." + );
    }
}

Student.java


public class Student extends Person {
    Student() {
        System.out.println("Ich bin ein Student.");
    }
}

Main.java


public class Main {
    public static void main() {
        new Student();
    }
}
Ich bin menschlich.
Ich bin ein Student.

Kommentar

Der Konstruktor der Student-Klasse hat keine Beschreibung für die Ausgabe von "Human". Sie wird jedoch angezeigt. Mit anderen Worten, der Konstruktor der Student-Klasse, die Person erbt

Person.java


public class Student extends Person {
    Student() {
        super();
        System.out.println("Ich bin ein Student.");
    }
}

Es sieht aus wie das.

(Es ist eigentlich nicht fertig, aber wenn Sie es explizit schreiben, sieht es so aus. Wenn Sie eine Instanz einer geerbten Klasse erstellen, wird der Konstruktor der übergeordneten Klasse automatisch aufgerufen.)

Dieses super () ist der Konstruktor der übergeordneten Klasse.

Argument hinzufügen

Fügen Sie dann dem Konstruktor der übergeordneten Klasse ein Argument hinzu

Person.java


public class Person {

    private String name;

    Person(String name) {
        this.name = name;
        System.out.println(name + "ist.");
    }
}

Main.java


public class Main {
    public static void main() {
        new Student();
    }
}

Ja. Es liegt ein Kompilierungsfehler vor. Dies liegt daran, dass der Konstruktor der Person-Klasse ein Argument anfordert. In einem solchen Fall müssen Sie super () mit einem Argument in der Student-Klasse aufrufen.

Student.java


public class Student extends Person {
    Student(String name) {
        super(name);
        System.out.println("Ich bin ein Student.");
    }
}

Main.java


public class Main {
    public static void main() {
        new Student("Yamada");
    }
}
Das ist Yamada.
Ich bin ein Student.

Der Schüler erbt die Person, daher gibt es auch ein Namensfeld

Main.java


public class Main {
    public static void main() {
        Student student = new Student("Yamada");
        System.out.println(student.name);
    }
}
Das ist Yamada.
Ich bin ein Student.
Yamada

Recommended Posts

Über Java-Polymorphismus super ()
[Java] Polymorphismus
Über Polymorphismus
Java (Polymorphismus)
Über die Java-Schnittstelle
[Java] Informationen zu Java 12-Funktionen
[Java] Über Arrays
Etwas über Java
Informationen zu Java-Funktionen
Über Java-Threads
[Java] -Schnittstelle
Über die Java-Klasse
Informationen zu Java-Arrays
Über Java-Vererbung
Über Schnittstelle, Java-Schnittstelle
Über Java Var
Über Java Literal
Informationen zu Java-Befehlen
Informationen zur Java-Protokollausgabe
Informationen zur Java-Funktionsschnittstelle
Java, über zweidimensionales Array
Über [Java] [StreamAPI] allMatch ()
Informationen zur Java StringBuilder-Klasse
[Java] Über Singleton Class
Informationen zur Bindung von Java-Methoden
[Java] Über anonyme Klassen
Informationen zu Aufteilungsmethoden (Java)
[Java Silver] Informationen zur Initialisierung
Informationen zur Java-Array-Liste
Java (Verdienste des Polymorphismus)
Informationen zur Vererbung (Java Silver)
Informationen zur Java String-Klasse
Informationen zu Java-Zugriffsmodifikatoren
Über Java-Lambda-Ausdrücke
Informationen zu Java-Einstiegspunkten
Java 10 Docker-Unterstützung
Persönliche Zusammenfassung über Java
Über die abstrakte Klasse von Java
Hinweise zu Java GC
Was ich über Java 8 recherchiert habe
Über Java-Instanzen
Was ich über Java 6 recherchiert habe
[Gradle] Informationen zu Java-Plug-In-Aufgaben
Informationen zu Java-Variablendeklarationsanweisungen
Was ich über Java 9 recherchiert habe
[Java] Informationen zur Behandlung von Try-Catch-Ausnahmen
Informationen zu Java Class Loader-Typen
[Java Silver] Über gleich Methode
[Java] Über String und StringBuilder
Was ich über Java 7 recherchiert habe
Informationen zu Alibaba Java-Codierungsrichtlinien
Java-Klasse Variable Klassenmethode
Über Java-Paket und Import
Über Java Abstract Class
[Android / Java] Erfahren Sie mehr über DataBinding
Was ich über Java 5 recherchiert habe
Informationen zu statischen und nicht statischen Java-Methoden
[Einführung in Java] Über Lambda-Ausdrücke