关于Java继承--子类是否能继承父类私有属性

最近在做题的时候发现自己之前对继承的理解不对,子类能不能继承父类的私有属性和方法,随后在网卡查找,说法不一,看了一些文章,原来可以用断点来判断:

简单的父类例子
package com;

/**
 * @Classname Father
 * @Description TODO
 * @Date 2020/8/12 5:36
 * @Created by SunZhiQiang
 */
public class Father {
    // 私有静态变量
    private static int a = 1;
    // 私有成员变量
    private int b = 2;
    // 私有成员常量
    private final int C = 3;
    // 保护成员变量
    protected int d =4;
    // 公共静态变量
    public static int e = 5;



    public static int getA() {
        return a;
    }

    public static void setA(int a) {
        Father.a = a;
    }

    public int getB() {
        return b;
    }

    public void setB(int b) {
        this.b = b;
    }

    public int getC() {
        return C;
    }
}

子类继承上面的父类
package com;

/**
 * @Classname Son
 * @Description TODO
 * @Date 2020/8/12 5:38
 * @Created by SunZhiQiang
 */
public class Son  extends Father {

}

在main方法中实例化子类
package com;

/**
 * Hello world!
 *
 */
public class App 
{
    public static void main( String[] args ) {

        Son s = new Son();
        int b = s.getB();
        System.out.println(b);
    }
}

在这里插入图片描述

总结:

1、说明子类能够继承父类的私有属性,只是因为权限问题无法访问
2、静态成员无论公有还是私有的,都没有继承(我的理解是因为静态成员并不存放在对象对应的堆空间中,是在方法区,而继承是继承父类的对象的内容,所有也没有继承静态成员)

如果理解有误,大家可以指出来,我会及时修改,免得误导别人

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值