再利用性を高める抽象クラスを習得する:ソースコードで学ぶ SJC-P 5.0 ドリル(5)(2/2 ページ)
本連載は、サン・マイクロシステムズ認定のJava資格Sun Certified Programmer for Java 2 Platform 5.0(SJC-P5.0)に対応しています。最新の出題傾向に基づいて、ソースコードの問題を中心に毎回模擬問題を1問出題します。ソースコードに慣れながら、SJC-P合格を目指して頑張りましょう。
解答
C、E
解説
Aは、メソッド定義の終わりが;となっているためコンパイルエラーです。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
Bは、メソッドの終わりが{ }となっていますが、abstractキーワードを使用しているためコンパイルエラーです。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
Cは、Fooクラスの抽象メソッドを正しくオーバーライドしているため問題ありません。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
なお、Fooクラスの4行目で宣言しているmethodA()は、publicとabstractが逆でも正しい記述です。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
Dは、抽象メソッドであるmethodA()メソッドをオーバーライドしていないため、コンパイルエラーです。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
Eは、クラス宣言がabstractとなっているため、スーパークラスの抽象メソッドであるmethodA()メソッドをオーバーライドしていなくても問題ありません。ただし、Barクラスをスーパークラスに持つ具象サブクラスを定義した場合、FooクラスのmethodA()メソッドを正しくオーバーライドする必要があります。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
さらにもう一歩
ある抽象クラスを基に、抽象サブクラスを作成することができます。継承関係を持つため、抽象サブクラスを作成する際にはextendsを使用します。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
筆者紹介
山本道子
有限会社Ray代表。千葉県出身。一般事務、派遣を経て2000年サン・マイクロシステムズ入社。J2SEのほか、J2EEなどサーバサイドJavaコース担当およびテキスト開発に携わる。2004年退職後、有限会社Rayを設立し、システム開発、インストラクタ、執筆などを手掛けている。
Copyright © ITmedia, Inc. All Rights Reserved.