我需要更好地解释这种情况。 我不知道这是否是Java语言本身提供的功能
//super class
public class Student {
public Student(){}
public void display(){
System.out.println("Hello from Student");
}
}
//Subclass
public class SeniorStudent extends Student {
public SeniorStudent(){
super();
display();
}
public static void main(String[] args) {
SeniorStudent st=new SeniorStudent();
}
}
运行程序时,会调用display()
方法。
这里的逻辑是什么?
答案 0 :(得分:0)
您在子类中调用display方法,但如果不重写display()方法,它会自动调用父类。类的构造是在类中执行的第一部分。你的软件下的逻辑是:
因此,如果您想在控制台中打印“来自高年级学生的Hello”,您必须更改此类高年级学生课程
public class SeniorStudent extends Student {
public SeniorStudent(){
super();
display();
}
public void display(){
system.out.println("Hello from senior Student");
}
public static void main(String[] args) {
SeniorStudent st=new SeniorStudent();
}
}
如果你把super.display()放在来自SeniorStudent类的display方法中你调用父显示方法然后执行高级学生显示方法,那么输出就像
"Hello from Student"
"Hello from Senior Student"
希望我很清楚,但如果你有问题,我很乐意帮助你