検索
連載

参照型の一種、インターフェイスを習得するソースコードで学ぶ SJC-P 5.0 ドリル(6)(2/2 ページ)

本連載は、サン・マイクロシステムズ認定のJava資格Sun Certified Programmer for Java 2 Platform 5.0(SJC-P5.0)に対応しています。最新の出題傾向に基づいて、ソースコードの問題を中心に毎回模擬問題を1問出題します。ソースコードに慣れながら、SJC-P合格を目指して頑張りましょう。

PC用表示
Share
Tweet
LINE
Hatena
前のページへ |       

解答

 D

解説

 1行目はFooインターフェイスを定義しています。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 2〜4行目ではFooインターフェイスを実装したXクラスを定義していますが、Fooインターフェイスのexec()メソッドを正しくオーバーライドしているため構文上に問題はありません。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 5〜7行目ではそのXクラスを継承したYクラスを定義していますが、構文上に問題はありません。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 8行目のZクラスはYクラスをスーパークラスに持ち、Fooインターフェイスを実装したクラスとして定義されています。extends、implementsの順番でクラス宣言がされているため、問題ありません。implements、extendsの順番で記述するとコンパイルエラーとなります。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 従って、演習問題のソースコードをコンパイル・実行すると、 12行目の呼び出しに対して3行目が実行、13行目の呼び出しに対して6行目が実行、 14行目の呼び出しに対して6行目が実行され、実行結果が「XYY」となります。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

さらにもう一歩

 あるインターフェイスを基に、サブインターフェイスを作成することができます。継承関係を持つため、サブインターフェイスを作成する際にはextendsキーワードを使用します。また、インターフェイスの継承は、extendsキーワードの後に複数のインターフェイスを指定することが許可されています。

 ただし、サブインターフェイスを実装した具象クラスは、スーパーインターフェイスおよびサブインターフェイスのメソッドをすべてオーバーライドする必要があります(サンプルコード2)。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

筆者紹介

山本道子

有限会社Ray代表。千葉県出身。一般事務、派遣を経て2000年サン・マイクロシステムズ入社。J2SEのほか、J2EEなどサーバサイドJavaコース担当およびテキスト開発に携わる。2004年退職後、有限会社Rayを設立し、システム開発、インストラクタ、執筆などを手掛けている。



Copyright © ITmedia, Inc. All Rights Reserved.

前のページへ |       
ページトップに戻る