February 01, 2007

Sun Certified Programmer for the Java 2 Platform 1.4(メルマガvol105回答&解説)

<PR> 間際予約沖縄旅行!旅ポケ.com

正解
1,3,5

インタフェースは抽象メソッドと定数から構成され、クラスにより実装されます。

正解の選択肢
「インタフェースは複数のインタフェースを実装できる。」
クラスは単一継承ですが、インタフェースは多重継承ができます。
 例.
 public interface IFx extends IFa, IFb {...};

多重継承したインタフェースを実装する非抽象クラスは、スーパーインタフェースも含めてメソッドの実装をしなければなりません。

「クラスは複数のインターフェースを実装できる。」
クラスは implements を使用してインタフェースを実装します。
クラスは複数のインタフェースを実装でき、また同時にクラスを継承することもできます。
 例
 class TestB extends TestA implements IFa, IFb {...};

インタフェースを実装する非抽象クラスは、全てのメソッドを実装しなければなりません。

「インタフェースの定数の修飾子は暗黙的に public、static、final になる。」
自動的に public、static、final になるので、明示的に記述する必要はありません。
 例. 全て同等の定数になります。
 int HIGH_LVL = 99;
 static int HIGH_LVL = 99;
 final int HIGH_LVL = 99;


不正解の選択肢
「抽象クラスはインタフェースを実装できない。」
インタフェースを実装したクラスは全てのメソッドを実装しなければなりませんが、そのクラスが抽象クラス(abstract)の場合、その実装をさらにそのサブクラスに委ねることができます。

例.
interface IFx { // インタフェースの宣言
void mtdX ();
}
abstract class TestA implements IFx { // 抽象クラスがインタフェースを実装
abstract void mtdA ();
}
public class TestB extends TestB{ // 非抽象クラスが抽象クラスを継承
public static void main (String [] args) {
TestB b = new TestB();
}
public void mtdX () { // インタフェースのメソッドを実装
System.out.println("mtdX");
}
void mtdA () { // 抽象クラスのメソッドを実装
System.out.println("mtdA");
}
}

※ インタフェースのメソッドのアクセス制御は暗黙的に public なので、実装するときメソッドに public を指定する必要があります。


「インタフェースのメソッドは暗黙的に protected、abstract になる。」
インタフェースのメソッドは、protected ではなく、自動的に public、abstract になります。

「インタフェースは、implements を使用して他のインタフェースを継承する。」
正解解説にあるように、インタフェースは extends を使用して他のインタフェースを継承します。


ミニまぐで配信されたメールマガジンの問題に対する解答・解説です。
「Project - ∞一日一問IT資格をGET! (ID:M0058193)」
製品のお求めは、全科目1年間使い放題で7,980円のProject - i でどうぞ。

投稿記事が気に入ったらポチっとやって頂戴!

ブログランキング緑にほんブログ村 資格ブログへ 人気ブログランキング【ブログの殿堂】
▼記事に満足したらここをクリック▼
ブログランキングランキングオンライン


<PR> ウィークリー&マンスリーマンションのヒカリホーム
ビジネスホテルよりも、だんぜん快適!お得!


Sun SJC-P認定ガイド 310-055対応
SUN教科書Javaプログラマ(SJC-P)
Java2 SJC‐P Platform1.4対応
サン技術者認定資格教則本Java2(SJC‐P)


トラックバックURL

この記事にコメントする

名前:
URL:
  情報を記憶: 評価: 顔