インターフェースの必要性についてJavaを使って解説(3)
2017/04/04
第一回目と第二回目はこちら。読んでいない方はまず最初に読んでください。
前回はインターフェースではなく、もしJavaに多重継承が認められていたら、不特定多数のユーザークラスの指定メソッドにアクセスできることを書きました。これが結局のところインターフェースの形にとても似ていると。
今回で最終回です。
というか前回の時点でインターフェースの必要性についてほとんど説明できたかと思います。
[ad#top-1]
多重継承の代わりにインターフェース
ご承知の通りJavaでは多重継承が許されていません。おそらく、メソッドなどの干渉が起きやすくプログラムも複雑化するからだと思いますが、その副作用として名前の知らないクラス内のメソッドにアクセスできないという問題が出てしまいます。
なので、その代替え案としてJavaにはインターフェースが用意されているわけです。
図に書くとこんな感じ。
まとめ
インターフェースの必要性を3回に分けて書きましたが、まとめると以下の通りです。
- Javaにおけるインターフェースは、不特定多数のユーザーが利用するコンポーネントを作るときに必要になる。
- なぜなら、不特定多数のユーザーが作るクラスの名前は前もって知らないから。(知らないと、ユーザーのメソッドにアクセスできず、値を送れない)
- 教科書や質問サイトなんかでは、インターフェースの必要性の説明で、「特定のメソッドを使わすための契約書のようなもの」とあるが、これは説明不十分。それだけだったら(メソッドが定義されなかったら)コンパイルエラーを出せばいいだけ。
- インターフェースの本質は不特定多数の(名前の知らない)ユーザークラスにアクセスするためのもの。
という感じです。
いやー、Javaから離れて3年経つけど、なんか懐かしくなってきました。またちょっと触ってみようかな(笑)。
.
[ad#ad-1]
スポンサーリンク