java私有成员的访问_java – 私有成员可通过公共方法访问

private修饰符指定只能在自己的类中访问该成员.但我能够使用从基类继承的公共方法来访问它.有人能解释一下为什么吗?这是否意味着Child类的对象包含一个名为b的成员?

这是代码:

package a;

public class Base {

private int b;

public int getB() {

return b;

}

public void exposeB() {

System.out.println(getB());

}

public Base(int b) {

this.b = b;

}

}

package b;

public class Child extends Base {

Child(int b) {

super(b);

}

public static void main(String args[]) {

Child b = new Child(2);

// Prints 2

System.out.println("Accessing private base variable" + b.getB());

}

}

解决方法:

您没有直接访问超类中的私有变量.您正在实施Encapsulation的概念.您正在使用公共getter方法(在本例中为getB())来使您的私有数据被其他类加入.因此,您可以通过公共getter访问私有变量b,但是您永远不能从另一个/子类直接访问其实例

标签:java,oop,inheritance

来源: https://codeday.me/bug/20190723/1511674.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值