練習問題
2.7 練習問題
本章で習った内容を元に練習問題を解いて下さい。
問1 次の設問①~⑤について○か×で答えなさい。
設問
① 抽象クラスとインタフェースには抽象メソッドが定義できる。
② 抽象クラスもインタフェースもオブジェクト化できる。
③ 抽象メソッドは処理内容のない定義だけのメソッドなので、サブクラスで必ずオーバーライドする必要はない。
④ 抽象クラスは多重継承が可能で、インタフェースは多重継承は禁止されている。
⑤ インタフェースも他のインタフェースを拡張して、新しいインタフェースを定義することができる。
問2 以下のソースコードについて説明をした設問①~⑤について○か×で答えなさい。
設問
① インタフェースAはクラスCを継承している。
② インタフェースA、B、Cは抽象メソッドを定義している。
③ クラスZはクラスYを継承したサブクラスである。
④ クラスZにインタフェースAとBを実装している。
⑤ 抽象クラスYは普通のメソッドを定義しているためコンパイルエラーになる。
ソースコード
interface A extends C { void a(); } interface B { String b(); } interface C { void c(); } class Z extends Y implements A,B { … } abstract class Y { String x(){ … } abstract void y(); }
問3 問2のソースコードに記述されていたclass Zが実装しないといけない、抽象メソッドの組み合わせを選択肢①~⑤より選んで答えなさい。
設問
選択肢
① a、b、c、x、y
② a、b、x
③ a、b、y
④ a、b、c、y
⑤ a、b
問4 以下に示すインタフェースを実装したクラスで、オーバーライドするメソッド定義の空欄①~④を答えなさい。
ソースコード
➢ ISample.java ※インタフェース① ソース・フォルダー :myproj_basic/src
② パッケージ :jp.co.f1.basic.ch12exercise
③ 名前 :ISample
package jp.co.f1.basic.ch12exercise; public interface ISample { void show(); String msg(int num); void data(int num, String name); int sum(int[] nums); }
① ソース・フォルダー :myproj_basic/src
② パッケージ :jp.co.f1.basic.ch12exercise
③ 名前 :Practice1201
➢ Practice1201.java ※インタフェースISampleを実装したPractice1201クラス
※メソッドの処理内容は省略しています。