【问题标题】:Creating a Class Hierarchy with no Public Attributes创建没有公共属性的类层次结构
【发布时间】:2017-12-05 19:04:14
【问题描述】:

我正在做一个练习考试题,要求我构建一个仅包含私有属性且不重新声明属性的 Battery 层次结构。我有四个类,Battery、BadBattery(一个异常类)、SingleUse 和 Rechargeable。我知道 Battery 应该是一个抽象类,这就是为什么我不知道为什么我不能将这个类的属性声明为公共的。我让我的层次结构给出了我的教授想要的确切输出,但是如果我要在我的抽象类中将属性设为私有,我怎样才能避免在任何子类中重新声明它们?我是否必须在我的抽象类中有一堆公共 getter,以便我可以在任何子类中访问这些属性?

【问题讨论】:

    标签: inheritance abstract getter


    【解决方案1】:

    使用继承,不重新声明所有子类共有的变量,将它们隐藏到上下文的其余部分的唯一方法是在基类中将它们声明为protected(它是否无关紧要抽象或具体)。
    这样,属性可以直接访问到类层次结构,世界其他地方只能使用public getters 访问。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-18
      相关资源
      最近更新 更多