このsuperがインタフェースおよび実装クラスで指すオブジェクト



  
  
  
  
  1. interface Base{  
  2.     public void dosth();  
  3.     public void doSth_1();  
  4. }  
  5. class Sub1 implements Base{  
  6.  
  7.     public void doSth_1() {  
  8.         this.dosth();  
  9. //      super.doSth();  // error  super  Base Object  
  10.     }  
  11.  
  12.     public void dosth() {  
  13.           
  14.     }  
  15.       
  16. }  

ベースをclass implementに変更してextendsに変更すると
 

  
  
  
  
  1. class Base{  
  2.     protected void dosth(){  
  3.           
  4.     }  
  5.     public void doSth_1(){  
  6.           
  7.     }  
  8. }  
  9. class Sub1 extends Base{  
  10.     public void dosth(){  
  11.         super.dosth();  
  12.         super.doSth_1();  
  13.         this.dosth();  
  14.         this.doSth_1();  
  15.     }  
  16.     void func(){  
  17.         super.dosth();  
  18.     }  
  19. }