参照型の一種、インターフェイスを習得する:ソースコードで学ぶ SJC-P 5.0 ドリル(6)(1/2 ページ)
本連載は、サン・マイクロシステムズ認定のJava資格Sun Certified Programmer for Java 2 Platform 5.0(SJC-P5.0)に対応しています。最新の出題傾向に基づいて、ソースコードの問題を中心に毎回模擬問題を1問出題します。ソースコードに慣れながら、SJC-P合格を目指して頑張りましょう。
連載第6回の今回は、インターフェイスに関する出題です。
インターフェイスとは
インターフェイスはstaticな定数と、抽象メソッドのみを持つクラスです。前回紹介した抽象クラスと同様にインスタンス化はできません。また宣言時はclassではなくinterfaceキーワードを使用します。
【構文】
[修飾子] interface インターフェイス名 { }
(例)
public interface MyInterface { }
インターフェイスでのメソッド
インターフェイスに定義するメソッドは抽象メソッドのみです。処理内容を持つ通常のメソッドは定義できません。抽象メソッドの構文は抽象クラスのときと同様ですが、インターフェイスの場合は、使用できるアクセス修飾子はpublicのみです。インターフェイスで宣言したメソッドは、publicなabstractメソッドであることが決まっているため、明示的にpublic abstractを指定していなくても、コンパイラによって強制的に付加されます。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
インターフェイスでの変数
インターフェイスに定義できる変数はpublicなstatic指定されたfinalな変数、つまり定数のみです。もし明示的にpublic static finalを指定していなくても、コンパイラによって強制的に付加されます。このようにインターフェイスでは必ず定数となるため、初期化しておかないとコンパイルエラーとなります。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
インターフェイスを利用する
インターフェイス自体はインスタンス化できないため、インターフェイスで宣言されたメソッドをオーバーライドしたクラスを用意する必要があります。これをインターフェイスの実装クラスと呼びます。実装クラスの宣言時には、implementsキーワードを使用し、インターフェイス名を指定します。
【構文】
[修飾子] class クラス名 implements インターフェイス名{ }
(例)
public interface MyInterface { }
public class MyClass implements MyInterface { }
implementsの後には、1つ以上のインターフェイスを複数指定することができます。複数指定する場合は、カンマ(,)で区切ります。そして、その実装クラスは、インターフェイスで宣言されたメソッドをすべて実装する必要があります。また、オーバーライドする際には、public修飾子を付ける必要があります。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
演習問題
以下の問題を考えてみてください。解答と解説は次のページにあります。
問題
次のプログラムをコンパイルし、実行するとどうなりますか? 1つ選択してください。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
A. YYX
B. YXX
C. XXY
D. XYY
E. コンパイルエラー
Copyright © ITmedia, Inc. All Rights Reserved.