Java入門〜interfaceの使いどき〜
本記事は、ChatGPTで出力した内容に加筆修正したものです。
interfaceとは
インタフェースは、プログラムの柔軟性、拡張性、保守性を向上させるために利用されます。
例えば、クラスAがクラスBを使用する場合、クラスAは直接クラスBに依存します。この場合、クラスBに変更があった場合、クラスAにも変更が必要になります。しかし、クラスBがインタフェースを実装する場合、クラスAはそのインタフェースに依存することができます。クラスBに変更があっても、インタフェースに変更がなければクラスAに変更は必要ありません。これにより、プログラムの保守性が向上します。
また、インタフェースを利用することで、異なるクラスが同じインタフェースを実装することができます。これにより、プログラムがより柔軟になり、より多くの機能を実現することができます。
さらに、インタフェースを利用することで、プログラムのテストが容易になります。インタフェースを実装する複数のクラスがある場合、それらのクラスは同じインタフェースを実装しています。そのため、テストの際には、インタフェースを利用して共通のテストケースを作成することができます。
interfaceと実装のsample
// インタフェースの定義
public interface Animal {
public void sound(); // 動物の鳴き声を表す抽象メソッド
}
// インタフェースを実装するクラスの定義
public class Dog implements Animal {
@Override
public void sound() {
System.out.println("ワンワン");
}
}
// 別のクラスからインタフェースを使用する例
public class Main {
public static void main(String[] args) {
Animal animal = new Dog(); // インタフェースの型で宣言し、実装クラスのインスタンスを代入
animal.sound(); // "ワンワン"と出力される
}
}
上記の例では、Animalというインタフェースを定義し、Dogクラスがこのインタフェースを実装しています。そして、別のクラスMainでは、Animal型の変数animalを宣言して、new Dog()でDogクラスのインスタンスを代入しています。このように、DogクラスはAnimalインタフェースの型で扱うことができます。
なお、Animalインタフェースはpublicで定義されているため、別のパッケージからでも使用することができます。DogクラスがAnimalインタフェースを実装するには、@Overrideアノテーションを用いてsound()メソッドをオーバーライドしています。
Discussion