老师 父类有带参构造函数 子类构造函数应该怎么写?为什么?
//父类
public abstract class Animal {
private String name;
public Animal(String name) {
super();
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public abstract void play();
}
//子类
public class Dog extends Animal {
//子类带参构造函数是这么写么?为什么这么写
public Dog(String name) {
super(name);
}
@Override
public void play() {
System.out.println(this.getName()+"在做游戏!");
}
}
28
收起
正在回答
1回答
子类构造方法中写super(); 会调用父类的无参构造方法。
子类构造方法中写super(参数列表); 会调用父类相应的有参构造方法。
在你的代码中,父类没有无参构造,所以子类构造方法中不能写super(); 写super(name); 相当于调用父类的构造方法,并把此name传值给父类构造方法的name,父类在构造方法中对name属性进行赋值。
1. Java 零基础入门
- 参与学习 人
- 提交作业 3802 份
- 解答问题 11489 个
本阶段带你迈入Java世界,学习Java必备基础知识,基础语法、面向对象思想以及常用工具类的使用。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星