Quantcast
Channel: OKWAVE 閲覧数の多い質問(Java/253)【本日】
Viewing all articles
Browse latest Browse all 68675

スーパークラスのコンストラクタの処理を引き継ぐ

$
0
0
基本情報18年秋のJava問題問12の設問1(a)の問でわからないことがあるので教えてください。 スーパークラスを継承したクラスのコンストラクタ内の処理を、スーパークラスのコンストラクタと同じ処理する場合の記述についてです。 問題と解答(http://www.jitec.jp/1_04hanni_sukiru/mondai_kaitou.html#18aki)はここですが、簡単に書くと、次のようになります。 抽象クラスBook abstract class Book { String name; String id; Book(String name, String id) { this.name = name; this.id = id; } ~ } Bookを継承したRegularBook class RegularBook extends Book { RegularBook(String name, String id) { ここが穴埋め ; } ~ } 穴埋めの解答群5つのうちの2つが次のとおりです。 エ super(name, id) オ this.name = name; this.id = id もちろんエが正解です。 普通ここにエの記述をするのはわかるのですが、なぜ「オ」が「絶対に間違い」と言い切れるのかが分からないのです。 スーパークラスのコンストラクタ内の処理が変更になった場合、それを継承するクラスのコンストラクタの処理にも反映されるとか、そういう意味でもエの書き方は便利だとは思いますが、オも絶対に間違いといいきれないのでは?? お尋ねしたいのは、情報処理試験の問題として、絶対に間違いでない選択肢を2つ以上もいれるはずもないので、オは「なにがなんでも間違い」なんだろうけれどもその理由が分からないのです。 オが確実に間違っているという理由が分かりましたら教えてください。よろしくおねがいいたします。

Viewing all articles
Browse latest Browse all 68675

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>