スポンサーリンク

メソッドの強制実装

インターフェース

abstractと同様にクラスにメソッドを強制実装させる命令があります。それがinterface(インターフェース)です。

abstractはスーパークラスなので継承元クラスに一つしか定義できませんが、intaerfaceはクラスに複数定義できます。プログラムで確認していきましょう。

プロジェクトjava01にパッケージstep12、クラス「Curve」を作成し、次のプログラムを入力してください。

さらにクラス「Fork」を作成し、次のプログラムを入力してください。

インタフェースを利用するクラスは次のように「implements」の後ろにインタフェースクラス名を記述していきます。abastractと違い複数記述することができます。

クラスChildの3行目を次のように変更してください。

クラスChildでエラーが発生しました。

インターフェースで宣言されたメソッドをクラスChildに実装する必要があります。次の19行目~29行目のようにメソッドを実装してください。

インターフェースは定義したクラスにメソッドの実装を強制させますが、その他に定数の定義ができます。それがインターフェースCurveの5行目です。

この定数は定義したクラスで利用できます。クラスChildの22行目です。

なにが便利?

abstractはクラス作成時のルール化として利用できました。interfaceはクラスに複数定義できるので、外部プログラムからメソッドを利用する際の統一化ができます。

例えば、クラスAでテレビ機能、ラジオ機能を作成する場合は、インタフェースTv,Radioを定義します。クラスBでテレビ機能、スマホ機能を作成した場合は、インタフェースTv,Smartを定義します。外部プログラムからテレビ機能を使いたい場合に、クラスA、クラスBともインタフェースTvが定義されているので、同一のメソッドを利用してクラスA,Bのテレビ機能を使えます。

タイトルとURLをコピーしました