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
}
}
当我们创建子类对象时,只会创建一个对象。该对象中的成员是什么?父母的私人领域会发生什么?
答案 0 :(得分:2)
实例化子类的对象时。
因此字段将存在(并且它们将存储一个值),但如果它们是私有的,您将无法访问它们。
返回私有字段的公共方法将授予您该访问权限。简而言之,它会起作用。
希望这有帮助。
修改(以回应评论):
该机制内置于安全语言中。访问修饰符提供该机制所需的信息。
优点:
实施例
private int salary;
public void setSalary(int newSalary) {
if (newSalary < MAX_SALARY) {
this.salary = newSalary;
} else {
this.salary = MAX_SALARY;
}
}
答案 1 :(得分:1)
子对象将为父级私有字段保存一个值,但因为它在Parent
中是私有的,任何人(包括子对象本身)对的唯一方式访问该值是通过从父类继承的方法。
答案 2 :(得分:0)
智利对象的字段已创建。 初始化第一个字段,然后调用构造函数。 在您的案例中,字段a将初始化为值10。
答案 3 :(得分:0)
似乎你知道你做了什么
Child ch = new Child()
然后
ch.a;
显然不起作用,因为它是私人的 但是当一个对象从父类扩展时,它继承了所有的public和private属性,所以你必须在Parent类中定义一个函数,比如
public int getA(){
return a;
}
稍后在ch中你可以访问如下:
ch.getA();