super关键字还能继续往上调用吗

谁学逆向工程 2016-07-21 09:08:04
class YeYe
{
int num=2;
}
class BaBa extends YeYe
{
int num=3;
}
class ErZi extends BaBa
{
void show()
{
System.out.println(super.num);
}
void show2()
{
System.out.println(super.super.num);//编译错误
}
}
public class Dd
{
public static void main(String[]args)
{
ErZi e = new ErZi();
e.show();
}


}

...全文
158 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
walkuere 2016-07-23
  • 打赏
  • 举报
回复
应该是不可以的,你只有构造函数里第一句写super(),然后父类的构造函数里这个构造函数第一句恰好也是super()那么可以一层层往上
bigname22 2016-07-23
  • 打赏
  • 举报
回复
这样是不行滴,因为儿子只有指向爸爸的成员,没有直接指向爷爷的,要完成你想要的那个功能,在你爸爸的类里面定义个方法指向你爸爸的爸爸(就是爷爷了),在儿子中调用应该就能实现了。
bigname22 2016-07-23
  • 打赏
  • 举报
回复
能的呀,子类构造方法没默认有super()调用父类的构造方法,父类也同样,一直延伸到object.
soton_dolphin 2016-07-21
  • 打赏
  • 举报
回复
不可以用super.super。 只可以引用直接的父类

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧