java 所有父类字段_父类中的私有字段-Java

class Parent{

private int a = 10;

public int getA() {

return a;

}

}

class Child extends Parent{

public int b = 20;

public void getSuperA() {

System.out.print(getA()); // getA() instead of a

}

}

当我们创建一个子类对象时,只会创建一个对象.该对象中的成员是什么?家长的私人领域会怎样?

解决方法:

实例化子类的对象时.

>初始化父级和子级的所有字段,而与访问修饰符(私有,受保护或公共)无关

>父类的构造函数被调用.

>子类的构造函数被调用.

因此,这些字段将存在(它们将存储一个值),但是如果它们是私有的,则您将无法访问它们.

返回私有字段的public方法将授予您该访问权限.简而言之,它将起作用.

希望这可以帮助.

编辑(针对评论):

该机制内置在安全性语言中.访问修饰符提供该机制所需的信息.

>只能从班级内部访问私有字段.

>它会存在,但从外部看不到.

>通过它对该类某些公共方法(使用它的人)的行为的影响,您可以感觉到它的存在.由于这些方法是同一类的成员,因此它们可以访问私有字段.

好处:

>您可以从外部隐藏实施细节.

>您可以通过方法限制字段的不当使用.

private int salary;

public void setSalary(int newSalary) {

if (newSalary < MAX_SALARY) {

this.salary = newSalary;

} else {

this.salary = MAX_SALARY;

}

}

标签:inheritance,private,java

来源: https://codeday.me/bug/20191121/2055755.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值