Java内部类怎么直接调用外部类啊?

Python016

Java内部类怎么直接调用外部类啊?,第1张

 public class Outer{

    int x

    String s = "hello"

    public void test(){

        System.out.print("test")

    }

    public class Inner{

        int s = 20

        public void testInner(){

            //可以直接使用外部类的成员变量和成员方法

            x = 0

            test()

            //如果外部类的成员变量和内部类变量重名,可以这样调用外部类的变量

            Outer.this.s = "test"

            //当然你可以new外部类对象 这也是没问题的

            Outer o = new Outer()

            o.x = 30

            o.test()

        }

    }

 }

第一个问题:D方法为包访问权限,同一个包内的其他类都可以访问,因为此处C类与超类D在同一个包,所以可以在main方法中实例化C后直接调用D方法。

第二个问题:super用于在子类中调用父类被重写的方法,比如在C类中你重写了D方法,那么,在C中直接调用D方法,毋庸置疑,肯定是调用C中被重写的方法,但是如果用super.D()的话就可以调用到父类的方法了。