有一个简单的程序代码。在构造函数中,super()没有扩展到超类的调用,我不明白在这种情况下会发生什么?
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构造函数。
java.lang.Object
请注意,此显式调用是不必要的,因为编译器会为您添加它。super()当您要使用参数调用超类构造函数时,只需在构造函数中添加调用。