美文网首页
为什么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