当前位置: 代码迷 >> J2SE >> 如何调用爷爷类的函数
  详细解决方案

如何调用爷爷类的函数

热度:136   发布时间:2016-04-24 12:27:40.0
怎么调用爷爷类的函数
刚刚学了覆盖父类的成员函数,学了 super 关键字,我以为 “super.super.函数” 能调用爷爷类的函数,但编译不了

------解决方案--------------------
没你这么干的,如果非得用“爷爷”的构造函数,那么有两个选择
第一,设计上直接 继承“爷爷”,放弃“父类”
第二,通过super调用父类的构造函数,在父类的构造函数调用super调用“爷爷”的构造函数

相当于传递一次
------解决方案--------------------
你只能调用自己和父亲的东西,虽然有些方法是在爷爷哪里定义的,只是因为你的父亲继承下来了,所以你也可以调用。
如果你的父亲重写了,那你就没有办法直接调用爷爷的东西,就是这样。
------解决方案--------------------
我晕死,public protected方法,那你直接调用就行了啊,只要你这个类里面没有覆盖父类和爷爷类的方法

有任何问题么?

Java code
public class Test1 {    public static void main(String[] args){        new GrandchildClass().sayHello();    }}class GrandFatherClass{    public void sayHello(){       System.out.println("hello");    }}class FatherClass extends GrandFatherClass{}class GrandchildClass extends FatherClass{    }
------解决方案--------------------
只要父类没有覆盖爷类的方法,子类完全可以调用的啊
------解决方案--------------------
直接调用就可以了,只要不是private的,但是如果父类覆盖了其方法,那就木有办法了,那你只能在父类中写个方法调用其方法,然后调用父类的方法即可。
------解决方案--------------------
最笨的方法,创建一个"爷爷"对象,调用它的方法。
  相关解决方案