美文网首页
为什么java中不支持super.super

为什么java中不支持super.super

作者: yangSmallXing | 来源:发表于2018-10-17 10:45 被阅读0次

有一种情况,当我们需要调用父类的父类的某个方法,直接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();
    }
}

相关文章

网友评论

      本文标题:为什么java中不支持super.super

      本文链接:https://www.haomeiwen.com/subject/xvulzftx.html