インターフェースとは何か?
メニューを表示するにはスワイプしてください
複数のクラスから継承する必要がある場合はどうすればよいでしょうか?Javaでは、インターフェースを使うことでこれが可能です。名前は異なりますが、インターフェースは抽象クラスと非常によく似ています。インターフェースの宣言方法を見てみましょう。
簡単に言うと、インターフェースはクラスが実装するメソッドを定義するために使用されます。インターフェースには独自の作成構文があります。クラスを作成する際には「public class className { }」を使用しましたが、インターフェースを作成する際の構文は異なります。
InterfaceExample.java
123456package com.example; public interface InterfaceExample { void methodName(); String methodThatAcceptsAndReturnsString(String parameter); }
- メソッド宣言に注目;
- アクセス修飾子は使用しない;
- メソッド本体は記述しない;
- インターフェース内で作業しているため、メソッドにabstractを付ける必要はない;
- インターフェース内にフィールドは作成しない。
Interfaceの利用例として、メディアプレーヤーを考える。
InterfaceというMediaPlayerがあり、その中にplay、pause、stopというメソッドがある。また、このメディアプレーヤーインターフェースを実装するクラスとして、AudioPlayerとVideoPlayerの2つが存在する。
MediaPlayer.java
AudioPlayer.java
VideoPlayer.java
12345public interface MediaPlayer { void play(); void pause(); void stop(); }
ご覧のとおり、interface を作成し、このインターフェースを 実装 する 2 つのクラスを作成しました。構文は抽象メソッドをオーバーライドする場合と同じです。各クラスごとに各メソッドをオーバーライドし、それぞれ固有の機能を実行しています。
インターフェースの特徴の一つは、複数のインターフェースを実装できることです。例を見てみましょう。
Vehicle.java
VehicleInfo.java
Car.java
123456package vehicle; interface Vehicle { void startEngine(); void stopEngine(); }
インターフェース Vehicle と VehicleInfo を作成しました。さらに、これら両方のインターフェース を実装するクラス Car も作成しています。このようにして、クラス内でどの動作を実装するかを選択できる ため、オブジェクト指向プログラミングの原則である 抽象化 をうまく補完します。
インターフェースの利用は非常に便利で、広く活用されています。次の章では、インターフェースと抽象クラスの主な違いについても探り、実際にどちらを使うべきかを学びます。
1. Javaにおけるインターフェースとは何ですか?
2. Javaでは、クラスは複数のインターフェースを実装できますか?
3. Javaにおけるインターフェースの目的は何ですか?
4. クラスでインターフェースを実装する際に使用されるキーワードはどれですか?
5. クラスがインターフェースを実装すると宣言しながら、すべてのメソッドを実装しなかった場合、どうなりますか?
フィードバックありがとうございます!
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください