例として、Javaが提供している標準の List インターフェースに新しいメソッドを追加する拡張インターフェイスを作成するとします。
import java.util.List;
// 拡張インターフェイスの作成
interface ExtendedList<T> extends List<T> {
    // 新しいメソッドの追加
    void customMethod();
}
// 使用例
class ExampleClass implements ExtendedList<String> {
    @Override
    public void customMethod() {
        // 新しいメソッドの実装
    }
    // List インターフェイスのメソッドの実装
    @Override
    public int size() {
        // 実装
        return 0;
    }
    @Override
    public boolean isEmpty() {
        // 実装
        return false;
    }
    // 他の List インターフェイスのメソッドも実装...
}この例では、ExtendedList インターフェイスが List インターフェイスを拡張し、新しいメソッド customMethod を追加しています。そして、ExampleClass クラスが ExtendedList インターフェイスを実装しています。これにより、ExampleClass は既存の List メソッドを使用できるだけでなく、新しいメソッドも利用できるようになります。
既存のインターフェイスの拡張
既存のJavaインターフェイスに新しいメソッドや機能を追加することができます。これにより、既存のコードを変更せずに新しい機能を追加できます。以下に、この手法の概要を解説します。
新しい拡張インターフェイスの作成:
既存のインターフェイスを拡張する新しいインターフェイスを作成します。
例えば、以下のようにして、ExistingInterface を拡張する ExtendedInterface を作成します。
interface ExtendedInterface extends ExistingInterface {
    // 新しいメソッドや機能を追加
    void newMethod();
}新しいメソッドの実装:
新しいメソッドは、新しい拡張インターフェイスを実装するクラスで具体的な実装が行われます。
class MyClass implements ExtendedInterface {
    // 既存のメソッドの実装
    // 新しいメソッドの実装
    @Override
    public void newMethod() {
        // 実装
    }
}
既存のクラスの変更不要:
既存のクラスは変更する必要がありません。そのまま新しい拡張インターフェイスを実装することができます。
既存のクラスでの利用:
既存のクラスは、新しい拡張インターフェイスを実装することで、既存の機能にアクセスしつつ、新しい機能も利用できます。
ExistingInterface obj = new MyClass();
obj.existingMethod(); // 既存のメソッド
((ExtendedInterface) obj).newMethod(); // 新しいメソッドこの手法により、既存のコードを変更せずに新しい機能を導入でき、柔軟性が向上します。

  
  
  
  
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
