有参数的父类构造函数
视频锁定
{$ currentTime | date:'mm:ss' $}
{$ timeLeft | date:'mm:ss' $}
如果父类的构造函数有参数该怎么办?你能够传值进去吗?如果不行的话,则没有无参数构造函数的类将不能被继承。想象这个情景:所有的动物都有名字。所以Animal
这个类有个getName()
可以返回name实例变量的值。此实例变量是被标记为私有的,但Hippo
这个子类有把getName()
继承下来。这时候问题来了:
Hippo
有getName()
这个方法但是没有name实例变量。Hippo
要靠Animal
的部分来维持name实例变置,然后从getName()
来返回这个值,但Animal要如何取得这个值呢?唯一的机会是通过super()
来引用父类,所以要从这里把name的值传进去,让Animal
把它存到私有的name实例变量中。
public abstract class Animal {
private String name;
public String getName() {
return name;
}
public Animal(String theName) {
//有参数的构造函数
name = theName;
}
}
public class Hippo extends Animal {
public Hippo(String name) {
//这个也要跟父类一样有同类型的参数
super(name); //这个name会传值给父类的构造函数
}
}
在线练习
{$ activeFileHint $}