有没有办法从子类访问父类中的private
字段?
即:
public class parent<T> {
private int MaxSize;
...
}
public class sub extends parent {
public int getMaxSize() {
return MaxSize;
}
}
基本上我想要一个访问器方法getMaxSize()
来返回ArrayQueue
的最大大小。感谢。
答案 0 :(得分:1)
否 - private
字段只能在声明它们的类中直接访问。但是,您可以创建字段protected
,这将允许您从子类访问它。下表是一个方便的参考:
Access permitted by each moodier: Modifier Class Package Subclass World ---------------------------------------------- public Y Y Y Y protected Y Y Y N no modifier Y Y N N private Y N N N
当然你也可以写一个public
(或protected
!)getter方法,它只返回你的字段的值,并在子类中使用这个方法而不是实际的字段本身。
除此之外,在Java中用 camelCase 编写变量名称是常规,即maxSize
。
答案 1 :(得分:1)
private
变量无法从其声明类以外的任何类访问,这意味着子类无法访问其父级的private
个变量。
您可以在父类中添加具有public
访问权限的getter,它们都允许子类访问。使用此结构,您的子类也从父级继承getMaxSize()
,从而无需在子类中声明该方法。
public class Parent {
private int maxSize;
public int getMaxSize() {
return maxSize;
}
}