• ベストアンサー

継承、実装についてまとめています。この図は正しいですか?

継承、実装についてまとめています。この図は正しいですか? クラス1 から継承した クラス2のものを、クラス3で継承するのでしょうか? クラス1 │ int a; │ static int b; │ │ クラス1() { } │ │ int methodA () { } │ static int methodB() { } ↓ サブクラス1 extends クラス1 │ int a; // 継承 │ int c; │ static int d; │ │ サブクラス1() { } // コンストラクタは継承しない、super()で呼び出す │ │ int methodA () { } // 継承 │ int methodC() { } │ static int methodD() { } ↓ サブクラス2 extends サブクラス1 implements サブインタフェース1, サブインタフェース2… ↑ int a; // サブクラス1のフィールドを継承 │ int c; // 継承 │ int e; │ static int f; │ public static final int g; // 実装(サブインタフェース1) │ public static final int h; // 実装 │ │ サブクラス2() { } │ │ int methodA () { } // サブクラス1のメソッドを継承 │ int methodC() { } // 継承 │ int methodE() { } │ static int methodF() { } │ int methodG() { } // 実装(サブインタフェース1) │ int methodH() { } // 実装 │ interface サブインタフェース1 extends スーパインタフェース1... ↑ public static final int h; │ │ public abstract int methodE() { } // 継承 │ public abstract int methodH() { } │ interface スーパーインタフェース public static final int g; public abstract int methodG() { }

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

  • ベストアンサー
  • kotoby2003
  • ベストアンサー率15% (280/1755)
回答No.1

見づらくて仕方ないですし、何を問うているのかわかりませんが・・・ 継承関係、実装関係の矢印の方向はあってますね。 ただ、継承の概念を理解されてないように見受けられます。 メソッドの横に//継承とありますが、確かに継承ではありますが、普通、オーバーライドと呼びます。 また、変数の横に//継承とありますが、変数はオーバーライドにもなりませんので、新たに別の変数を宣言していることになります。 つまり、クラス1のaとサブクラス1のaは別物になります。

pochi1234
質問者

補足

これは インスタンスとstaticの継承関係を表したく、 // 継承 は継承と言わないですし、オーバーライド です。 オーバーロードは考えないです。 説明足らずですいません。 もう一度投稿しなおします。

その他の回答 (1)

  • x_jouet_x
  • ベストアンサー率68% (162/236)
回答No.2

質問とは直接関係ありませんが、publicやprivateなどのアクセス修飾子については理解できていますよね? 変数やメソッドにpublicが付いていたり付いていなかったりするのが気になったもので・・・。 アクセス修飾子を何も付けない場合でも「どこからアクセスできるか」ちゃんと意味を持ちますからね。

参考URL:
http://www.tohoho-web.com/java/modifier.htm
pochi1234
質問者

補足

アクセス制御については4種類とも理解しています。 図の説明足らずですいません。 これは インスタンスとstaticの継承関係を表していて、 // 継承 は継承と言わないですし、オーバーライド です。 オーバーロードは考えないです。 もう一度投稿しなおします。

関連するQ&A

専門家に質問してみよう