下記の問題について教えてください。Java
下記の問題について教えてください。Java (解説には抽象クラスでも実装を提供して問題ないとありました。) 抽象クラス abstractはprintlnは記載できない。 →extendsして子クラスで書くと思っていたのですが 違うのでしょうか? 問題 Public interface Sample { void test(); } 回答 正しい Public abstract class Sample5 implements Sample { @override Pubilc void test() { System.out.println(“test”); } }
Java・32閲覧
ベストアンサー
>抽象クラスでも実装を提供して問題ない これは本当に言葉通りです。抽象クラスでも実装を提供して問題ないので、回答は正しいです。そういう定義なので、あまり深く考えても意味が無いです。「違うのでしょうか」とありますが「違います」で終わります。その参考書の誤植ではないです。 考えるとするならばJavaを設計した人物たちの心の動きや作者の心境を推察せよ、などという人文系の設問になります。つまり、どういう経緯でそういうルールが出来上がったのかの当時の議事録か日記のようなものを読む必要があります。 なので「extendsして子クラスで書くと思っていた」という〈考え〉は暗記ミスです。あなたが考えたり思いついたりしたワケでは無く、何らかの段階でのルールの暗記ミスです。 『abstractなメソッドには実装は書けない』というルールの暗記ミスだと思われます。すると、「抽象クラスは実装の書けない抽象メソッドをもつ」などという文章が頭の中で自動でねじ曲がって「抽象クラスでは実装が書けない」とルールが脳内で勝手に都合のいいように(覚えやすいように)短縮されます。これがあなたの「思い」の正体だと思われます。 つまり、言語の学習と試験勉強を同時にやるとこのようなことが起きます。特に穴埋めや選択肢問題で、隣りに解説が書いてるようなやつです。
1人がナイス!しています
質問者からのお礼コメント
ご回答のとおり abstractのメソッドとabstractのクラスを思い違えていたようです。 ありがとうございました。
お礼日時:7/3 15:36