インターフェイスのさまざまなメソッドが実装されているインターフェイス内にクラスを作成できますか。ここで、Java がインターフェイス内に内部クラスを記述できる理由と、それをどこで使用できるかについて疑問を持っています。
以下のプログラムでは、インターフェイス内にクラスを記述し、インターフェイスのメソッドを実装しています。インターフェイスの実装クラスで、内部クラス メソッドを呼び出しました。
public interface StrangeInterface
    {
      int a=10;int b=5;
      void add();
      void sub();
      class Inner
       {
         void add()
          {
             int c=a+b;
             System.out.println("After Addition:"+c);
          }
         void sub()
         {
             int c=a-b;
             System.out.println("After Subtraction:"+c);
         }
       }
    }   
 abstract public class StrangeInterfaceImpl implements I { 
      public static void main(String args[])
    {
       StrangInterface.Inner i=new StrangeInterface.Inner();
       i.add();
       i.sub();
    }
 }