練習問題
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クラス
※メソッドの処理内容は省略しています。
