Ich habe den Polymorphismus noch einmal untersucht, also werde ich ihn zusammenfassen Dieses Mal möchte ich super vertiefen und verstehen ()
** Ziel **
** Fazit **
Ich werde es mit einem konkreten Beispiel versuchen
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.
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.
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