有参数的父类构造函数

来源:互联网 发布:mac怎么延长待机时间 编辑:程序博客网 时间:2024/06/05 17:27

有参数的父类构造函数

如果父类的构造函数有参数该怎么办?你能够传值进去吗?如果不行的话,则没有无参数构造函数的类将不能被继承。想象这个情景:所有的动物都有名字。所以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会传值给父类的构造函数    }}

原创粉丝点击