2017-12-05 9 views
0

私はプライベートアトリビュートだけを持ち、アトリビュートの再宣言はしないでバッテリー階層を構築するよう尋ねる練習試験の質問に取り組んでいます。私は4つのクラス、バッテリー、BadBattery(例外クラス)、SingleUse、および充電式があります。私はバッテリーが抽象クラスでなければならないことを知っています。なぜこのクラスの属性を宣言できないのか混乱しています。教授が望んでいた正確な出力を得るために階層を取得しましたが、抽象クラスで属性を非公開にするにはどうすればよいでしょうか。どんな子クラスの属性にもアクセスできるように、抽象クラスにパブリックゲッターをたくさん持たなければならないでしょうか?パブリック属性を持たないクラス階層を作成する

答えて

0

継承を使用すると、変数をすべてのサブクラスに共通に再宣言せず、残りのコンテキストに隠す唯一の方法は、これを基本クラスのprotectedとして宣言します(抽象またはコンクリート)。
このように、属性はクラス階層に直接アクセスすることができ、残りの世界はpublicゲッターを使用してのみアクセスできます。

関連する問題