練習問題

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 以下に示すインタフェースを実装したクラスで、オーバーライドするメソッド定義の空欄①~④を答えなさい。

ソースコード

① ソース・フォルダー      :myproj_basic/src
② パッケージ          :jp.co.f1.basic.ch12exercise
③ 名前             :ISample

➢ ISample.java ※インタフェース
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クラス
 ※メソッドの処理内容は省略しています。


NEXT>> 2.8 練習問題 解答