私有成员变量可以被子类继承吗

Posted 衣带渐宽终不悔

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了私有成员变量可以被子类继承吗相关的知识,希望对你有一定的参考价值。

今天看spring源码,不经意间发现了一问题:在一个抽象类中定义了一个私有成员变量。

仔细想想:抽象类不能被实例化的,只能被子类继承。但是自从学java的继承只有,我们就知道,子类不能继承父类的私有成员变量或方法的。

问题:在该抽象方法中定义这个私有变量有什么用呢?或者说这个私有成员变量再什么地方用得到呢?

所以自己做了一个测试如下:

public abstract class Fatherclass {
    private int privatenumber;
    
    public int getPrivatenumber() {
        return privatenumber;
    }
    public void setPrivatenumber(int privatenumber) {
        this.privatenumber = privatenumber;
    }
}


public class Childclass extends Fatherclass{

    public static void main(String[] args) {
        Childclass childclass=new Childclass();
        Childclass1 childclass1=new Childclass1();
        childclass.setPrivatenumber(125);
        System.out.println(childclass.getPrivatenumber());
        System.out.println(childclass1.getPrivatenumber());
    }
}



public class Childclass1 extends Fatherclass {
    
}

运行结果如下:

125
0

 

通过测试,我们发现子类确实继承了父类的私有属性(也可以说是子类拥有一个属性,继承自父类,但是该属性的访问权限暂时不确定),但是我们无法通过子类直接访问该(继承自父类私有属性)的属性。我暂且该这种属性的访问权限起名为fatherprivate(意为继承自父类私有属性)

通过浏览博客,发现一篇博客对上面情况总结的很好:http://blog.csdn.net/frank_jb/article/details/42739785

 

以上是关于私有成员变量可以被子类继承吗的主要内容,如果未能解决你的问题,请参考以下文章

java中私有的属性、静态成员可以被子类继承吗?

子类真的继承私有成员变量吗?

java中,子类能调用父类中所有方法、对象吗?是不是父类也能调用子类所有……?

子类从父类继承过来的方法可以操作子类自己定义的成员变量吗

继承的基本概念: Java不支持多继承,也就是说子类至多只能有一个父类。 子类继承了其父类中不是私有的成员变量和成员方法,作为自己的成员变量和方法。 子类中定义的成员变量和父类中

子类会在后台包含来自超类的私有方法和成员变量吗? [复制]