Java-面向对象_super修饰构造器
super修饰构造器:
其实我们平时写的空构造器的第一行都有:super() -->作用 :调用父类的空构造器,只是我们一般都省略不写
public Student(String name) { // super(); this.name = name; }
如果构造器中已经显示的调用super父类的构造器,那么它的第一行就没有默认分配的super();了
子类:
public Student(String name,int age,int num) { // super(); super(name, age);//调用父类构造器 this.num = num; }
父类:
public Person(String name,int age) { this.name = name; this.age = age; } public Person() { }
在构造器中,super调用父类构造器和this调用子类构造器只能存在一个,两者不能共存:
因为super修饰构造器要放在第一行,this修饰构造器也要放在第一行:
错误的
改正二选一即可: