为什么java中不支持super.super

2018-10-17  本文已影响0人  yangSmallXing

有一种情况,当我们需要调用父类的父类的某个方法,直接super.super好像挺合理。

public class A{
          public void method(){}
}

public class B extends A{
          @Override
          public void method(){
              System.out.print("B");
    }
}

public class B extends A{
          @Override
          public void method(){
              super.super.method();
    }
}

出现错误了,因为super是对象的私有成员(private),所以子类不能使用父类的super。

只能用另一种方法实现:

public class A{
          public void method(){}
}

public class B extends A{
          @Override
          public void method(){
              System.out.print("B");
    }
         //重新写一个方法
          public void superMethod(){
              super.method();
    }
}

public class B extends A{
          @Override
          public void method(){
             //调用父类的父类的method方法
              super.superMethod();
    }
}
上一篇 下一篇

猜你喜欢

热点阅读