sub_object1.super.print_me()??
没见过这样写的,super代表父类对象,你是想直接调用父类的print_me()方法吗??

解决方案 »

  1.   

    super这个关键字只能用在继承者的代码里面
    其他类无法如此引用
      

  2.   

    回复人: registered(已注册) 这么说,父类的方法不能被“非子类”直接调用,其他类要调用父类的方法必须,必须通过子类中定义的方法?
      

  3.   

    回复人: registered(已注册)比如我现在的class sub_class中,没有定义调用父类的方法void print_super(),在程序中生成class sub_class的对象后就不能直接使用父类的void print_me()了,除非再生成一个父类的对象,才能使用父类的方法,可以这么理解吗?
      

  4.   

    是这样的
    但是通常情况是:
    子类要对父类某方法进行扩展,所以 override 父类同名方法后,
    在新的方法内首先调用父类同名方法(super.method()),然后对其进行相应扩展
    在你的例子里面可以表现为:
    class sub_class extends super_class {
        void print_me() {
            super.print_me();
            // Do some extension ...
            System.out.println("This is sub_class's print_me");
        }
    }