インターフェースの実装とクラスの継承 [日記]
Java(別にC#でも構わないけど)のインターフェースには、コードの実装がないから、クラスの継承と比べて存在意義を感じない。
という意見を時々見かけます。
それに対して
Java では多重継承が出来ないから……
という反論が出たら要注意です。
その反論をした人。オブジェクト指向をきちんと理解していない可能性が非常に高いです。
それは兎も角
インターフェースは、クラスから実装部分を取り除いたもの。
(インターフェースはクラスの特殊なもの)
という認識だから「インターフェース、要らなくね?」という発想が出てくるのでしょう。
『逆』ですよ。
まず、インターフェースがあって、そこに実装を加えたものがクラス。
(クラスはインターフェースの特殊なもの)
概念としては、こうなんですが、実体がないとイメージしづらいよなぁ……
そもそも、プログラミングを学習する際、
- クラスを作ってみよう
- クラスを継承してみよう
- インターフェースなんてものもあるよ
という順番で学習するので、「インターフェース=クラスの特殊なもの」と思ってしまうのは仕方が無いのかな。
かといって、先にインターフェースを説明するというのも、(実際にプログラムを作って動作させられないので)色々と無理がありそうだけど。
2010-08-19 07:21
nice!(0)
コメント(0)
トラックバック(0)
コメント 0