如何解决Java OOP 中默认构造函数中的 Super 关键字
当我有一个名为 Person 的超类时
public class Person {
int Mobilenum;
String Name;
double GPA;
public Person() {
GPA = 2.23;
Name = "Ramez";
}
并在我创建默认构造函数时的子类中
如果我想让他采用与 Person 类相同的构造函数 如果我将员工类中的默认构造函数留空会怎样
我必须这样做吗?
public Employee() {
super();
}
或者我不必编写 Super 关键字,因为它是默认构造函数?
解决方法
所有构造函数必须,根据定义,以调用另一个构造函数 (this(someArgs);
) 或超级构造函数 (super(someArgs);
) 开始。如果他们不这样做,那么编译器会默默地假设您打算从 super();
开始。是的,这意味着其父类没有无参数构造函数的任何构造函数必须以 super(something)
或 this(something)
开头,否则将无法编译。
如果您根本没有构造函数,javac 会默默地假设您打算编写一个无参数的公共构造函数。
这两个规则结合在一起。这意味着任何没有构造函数的类都可以免费获得一个构造函数,它不接受任何参数,其内容为 super()
。
换句话说,不需要编写任何构造函数。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。