Java 杂谈

子类不得不需要的构造方法

2019-01-19  本文已影响3人  大黑跟小白的日常

子类不得不需要的构造方法

有关private、protected修饰构造方法,对子类的影响

先看一段代码

public class AC {

    protected String s;

    privateAC () {}

    protected AC(String s){

        this.s = s;

    }

    public AC getAc() {

        return new AC();

    }

}

它说,没有一个可以访问父类构造的入口,父类的默认构造是不可见的。

所以需要找一个入口,能访问父类构造。

看错误解决提示

需要添加一个子类构造,子类构造中访问父类中可访问的构造,如下

public class ACSub extends AC {

    protected ACSub(String s) {

        super(s);

    }

}

还有一种解决方法就是将父类的私有构造,放开。那么子类就不需要任何构造了。

子类隐式默认的无参构造会默认访问父类的无参构造,只要可以访问的话。

这样,我们就具有了一种能力,如果我们想让子类,必须具有类似于自己的构造方法,那么就将无参构造私有,提供可访问的目标构造。

就跟一个必须需要重写的abstract方法一样

上一篇 下一篇

猜你喜欢

热点阅读