Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java OOP中默认构造函数中的Super关键字_Java_Oop_Constructor_Super - Fatal编程技术网

Java OOP中默认构造函数中的Super关键字

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"; } 在子类中,当我创建默认构造函数时 如

当我有一个名为Person的超级类

   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()

换句话说,不需要编写任何构造函数