Java OOP中默认构造函数中的Super关键字
当我有一个名为Person的超级类Java OOP中默认构造函数中的Super关键字,java,oop,constructor,super,Java,Oop,Constructor,Super,当我有一个名为Person的超级类 public class Person { int Mobilenum; String Name; double GPA; public Person() { GPA = 2.23; Name = "Ramez"; } 在子类中,当我创建默认构造函数时 如
public class Person {
int Mobilenum;
String Name;
double GPA;
public Person() {
GPA = 2.23;
Name = "Ramez";
}
在子类中,当我创建默认构造函数时
如果我想让他像Person类一样使用相同的构造函数
如果我在employee类中将默认构造函数留空会怎么样
我必须这样做
public Employee() {
super();
}
或者我不必编写Super关键字,因为它是默认构造函数?根据定义,所有构造函数必须从调用另一个构造函数(
this(someArgs);
)或超级构造函数(Super(someArgs);
)开始。如果没有,那么编译器会默默地假设您打算从super()开始代码>。是的,这意味着父类没有参数构造函数的任何构造函数必须以super(something)
或this(something)
开头,否则它将无法编译
如果您根本没有构造函数,javac将默默地假定您打算编写一个无args公共构造函数
这两条规则结合在一起。这意味着任何没有构造函数的类都可以免费获得一个构造函数,它不带参数,并且其内容是super()
换句话说,不需要编写任何构造函数