Ich lerne über Vererbung und arbeite mit diesem einfachen Programm, das eine Oberklasse und eine Unterklasse hat, wie unten gezeigt. Meine Frage ist nicht spezifisch für dieses Programm; Allerdings habe ich das zum ersten Mal gesehen, also verwende ich es als Beispiel für eine allgemeinere konzeptionelle Frage.
Warum führt die einfache Instanziierung der Klasse die Konstruktoren aus und gibt den Inhalt aus? Mein vorhergehendes Verständnis war, dass das Instanziieren der Klasse einfach das Objekt erstellt, aber es wird nichts tun.Warum werden bei der Instanziierung einer Klasse die Inhalte der Klasse ausgegeben?
SuperClass1.java
public class SuperClass1 {
public SuperClass1(){
System.out.println("This is the superclass constructor.");
}
}
SubClass2.java
public class SubClass2 extends SuperClass1
{
public SubClass2()
{
System.out.println("This is the subclass constructor.");
}
}
Main.java
public class Main {
public static void main(String[] args)
{
SubClass2 obj1 = new SubClass2(); // why should this print something?
}
}
Ausgabe
Dies ist der Superklassenkonstruktor.
Dies ist der Unterklassenkonstruktor.
"Instanziiert die Klasse" bedeutet oft * etwas tun *. Java selbst weiß eigentlich nicht, wie man etwas anderes macht, als jedes Feld auf 0 (oder null oder falsch) zu setzen.Das ist die meiste Zeit nicht genug, also müssen Klassen tatsächlich etwas tun, wenn sie instanziiert werden. In Ihrem Fall enthält die "Instanziierung" eine "println". – markspace
Weil das so funktioniert. Ich empfehle die Oracle Java Tutorials zu lesen, da dort alle grundlegenden Dinge erklärt werden. – Kayaman