我正在研究一个练习考试问题,要求我构建一个只有私有属性的电池层次结构,并且不会重新声明属性。我有四个类,Battery,BadBattery(异常类),SingleUse和Rechargeable。我知道Battery应该是一个抽象类,这就是为什么我不能为什么我不能声明这个类的属性是公开的。我得到了我的层次结构,以提供我教授想要的确切输出,但是如果我在抽象类中将属性设为私有,那么如何避免在任何子类中重新声明它们?我是否必须在抽象类中拥有一堆公共getter,以便我可以在任何子类中访问这些属性?
答案 0 :(得分:0)
使用继承,不重新声明所有子类共同的变量,将它们隐藏到上下文的其余部分的唯一方法是在基类中将它们声明为protected
(无论是否重要它是抽象的或具体的。
通过这种方式,属性可以直接访问类层次结构,世界其他地方只能使用public
getters 进行访问。 BR />