• ベストアンサー

クラス関係とは

質問させてください。 以下のページに、「インタフェースの実装はクラス関係に依存しません。」という記述がありますが、「クラス関係」とは何でしょうか。 http://www.javaroad.jp/java_interface1.htm 検索してもわかりませんでした。申し訳ありません。 どなたかご存知でしたらお教えください。

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

  • ベストアンサー
  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.1

そこだけ読むと分からないと思うけど その前から読めば ここで言う「クラス関係」というのは「継承」という関係ね。 例えば「空も飛べ海も潜れる車」というものを考え手みましょう。 これは車なんだから スーパークラス「車」のサブクラスになるの。 でも、飛べるてことは「飛行機」のサブクラスでもありたいわけ。 さらに、海を潜れるってことは「潜水艦」のサブクラスでもありたい。 だから「空も飛べ海も潜れる車」のスーパークラスとして「車」「飛行機」「潜水艦」と 複数持つことはJavaでは許可されないわ。 じゃあ、今目の前のある車はどうやって実装すれば良いか。 そこで役に立つのがインターフェースってわけ。 「飛ぶ」「潜れる」という二つのインターフェースを実装することで 「空も飛べ海も潜れる車」を実現するの。 目の前にある車が「飛ぶ」インターフェースを実装しているかどうかは instanceof演算子で判断できるようになるのよ。 こんな風に「車」とは直接何の関係もない「飛ぶ」というものを実装できる ということを言っているんだわ。

ryu-e
質問者

お礼

あ、いつもお世話になっています。 よくわかりました。ありがとうございます。

関連するQ&A