有一个简单的程序代码。在构造函数中,super()
没有扩展到超类的调用,我不明白在这种情况下这会做什么?
public class Student {
private String name;
private int rollNum;
Student(String name,int rollNum){
super(); //I can not understand why super keyword here.
this.name=name;
this.rollNum=rollNum;
}
public static void main(String[] args) {
Student s1 = new Student("A",1);
Student s2 = new Student("A",1);
System.out.println(s1.equals(s2));
}
}
没有显式扩展另一个类的每个类都隐式扩展java.lang.Object
。因此,super()
只需调用Object的no-arg构造函数即可。
请注意,此显式调用是不必要的,因为编译器会为您添加它。super()
当您要使用参数调用超类构造函数时,只需在构造函数中添加调用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句