JAVAのオブジェクト指向を勉強・練習している者です。説明が下手ですいませんが、
「スッキリわかるJava入門 第2版 (スッキリシリーズ) 」の(P431の)「間違った継承をするべきでない理由」にて
確かにHouseクラスを作った時点ではItemクラスを継承していても問題がないように思えます。しかし、これは単に
「たまたま現時点では実害がないだけ」であって、より忠実に現実世界の家やアイテムをまねようとクラスを改良
していくと次々と矛盾が生じます
と書かれているんですが、確かに以下のソースコードを継承してHouseクラスを作っても、問題がないように見えるんですね。
Java
1public class Item { 2 //省略 3 public int getDamege(){ 4 return 10; 5 } 6 //省略 7 } 8}
さらに、P436には
でも「HouseクラスにはgetDamege()があるけど、無視して使わない」ことにすればいいんじゃない?
と書かれており、確かにItemクラスを継承して、作成したHouseクラスの中にItemクラスから継承されたgetDamege()メソッドがありますが、それを無視して使わないようにすればいいと(私としては)思うんです。
しかし、
だめよ。「存在するけど実は使っちゃダメなメンバ」がいくつもあるクラスなんて、怖くて使えないわ
と書かれております。なぜ「存在するけど実は使っちゃダメなメンバがいくつもあるクラスなんて、怖くて使えない」と思ったのでしょうか?
そんなの無視して使わないようにすればいいと思うのですが、なぜ怖くて使えないのでしょうか?
なんらかのバグが生じるのですか?
よろしくお願いします。
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。