😽

Java入門〜interfaceの使いどき〜

2023/02/24に公開

本記事は、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