【发布时间】:2016-02-29 02:28:46
【问题描述】:
这是一个初学者的问题,但我搜索了一下,似乎找不到答案。
假设我有一个班级的人:
class Person {
private String SSN;
//blah blah blah...
}
然后我创建了一个 OldMan 的子类:
class OldMan inherits Person {
//codey stuff here...
public void setSSN(String newSSN) {
SSN = newSSN;
}
}
看起来我实际上无法更改 Person 的私有字段。我的印象是,当 OldMan 继承 Person 时,它会拥有属于它的私有变量的副本。看起来实际发生的事情是,当我创建一个 OldMan 对象时,它会创建 SSN 字段但是......它以某种方式属于一个 Person 对象?
我知道我可以让 SSN 受到保护,但这是最佳做法吗?这里实际发生了什么,如何创建一个父类来保护重要字段的访问,而不保护它们免受子类的影响?
【问题讨论】:
-
由这个 super.setSSN(..) 更新的答案,现在看起来很完美。感谢您的接受。
标签: java inheritance access-protection