• ベストアンサー

継承(extends)について

extendsについてわからないことがあります。 次の3つのクラスがあった時、 class スーパークラス { ... class サブクラス1 extends スーパークラス { ... class サブクラス2 extends サブクラス1 {... サブクラス2は、サブクラス1でスーパークラスから継承しているフィールドをメソッドを継承するのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • hegemon
  • ベストアンサー率72% (21/29)
回答No.1

>サブクラス2は、サブクラス1でスーパークラスから継承しているフィールドをメソッドを継承するのでしょうか? スーパークラスでpublicかprotectedで宣言されているメンバであれば、全て継承します。 どちらもつけないで宣言されている場合は「同一パッケージのクラス」からのみアクセス可能なので、派生クラスが別なパッケージにあると継承されません。

pochi1234
質問者

お礼

なるほど、アクセス制御次第なんですね ありがとうございました。

その他の回答 (1)

  • hegemon
  • ベストアンサー率72% (21/29)
回答No.2

上でうっかりと「継承されない」と書いてしまいましたが、実際にはアクセス できないだけで継承はされています。 つまり、publicやprotectedでないメンバでも、基底クラスのメソッド経由で ならアクセスできます。 継承とアクセス可否を混乱させるような内容でした。申し訳ありません。

関連するQ&A