【发布时间】:2018-02-13 21:45:41
【问题描述】:
我在 Java 中有两个类:Fist 类正在扩展 Person 类。我在Person 中有一个变量eyecolor,它是私有的,我有一个公共的setter 和getter。
现在,如果我在 Fist 类中扩展它,那么我可以设置变量并且也可以获取它。
我的问题是,如果 eyecolor 是 Person 类的私有成员,为什么我在使用私有成员时没有收到错误消息?为什么这段代码有效? eyecolor 数据成员是否被继承?
人物类
package lets_start;
public class Person {
private String eyecolor;
public String getEyecolor() {
return eyecolor;
}
public void setEyecolor(String eyecolor) {
this.eyecolor = eyecolor;
}
}
拳类
package lets_start;
public class Fist extends Person {
public static void main(String[] args) {
Fist f = new Fist();
f.setEyecolor("Brown");
System.out.println(f.getEyecolor());
}
}
输出:
棕色
【问题讨论】:
-
通过公共 getter
getEyecolor. -
我不确定,你的问题是什么。
-
Fist继承了公共的 getter 和 setter 方法。 仅在Person类中访问私有字段。如果您在类Fist中创建一个方法,其中您尝试直接访问字段eyecolor,那么它将无法编译。 -
现在请查看问题
-
“为什么我没有收到使用私人会员的错误?”因为您没有直接访问它,所以您使用的是公共吸气剂。 “眼睛颜色数据成员是继承的吗?”不,它没有,它继承了公共 getter/setter
标签: java oop access-modifiers