首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

请教这个程序中的super.fun()中的super是什么

2011-12-29 
请问这个程序中的super.fun()中的super是什么?public class MethodOverride{public static void main(Stri

请问这个程序中的super.fun()中的super是什么?
public class MethodOverride
{
public static void main(String args[])
{
SubClass s=new SubClass();
s.fun();
}
}

class SuperClass
{
int i=1;
public void fun()
{
System.out.println("Super");
System.out.println("父类的i="+i);
}
}

class SubClass extends SuperClass
{
int i=2;
public void fun()
{
System.out.println("Sub");
System.out.println("子类的i="+i);
super.fun();
}
}

请问这个程序中的super.fun()中的super是什么?



[解决办法]
super指的是直接父类,即super.fun()将调用父类SuperClass中的fun()
[解决办法]
super表示父类的意思
[解决办法]
是调用父类方法fun。
其实这个时候SubClass类中是有两个fun方法的(this.fun和super.fun)。
当从外部调用fun方法的时候,SubClass的fun方法就把父类的fun方法隐藏了。
如果子类不重写fun方法的话,则查找它的父类的fun方法。
[解决办法]
super是子类调用父类,this用在同一个类内
[解决办法]

探讨
是调用父类方法fun。
其实这个时候SubClass类中是有两个fun方法的(this.fun和super.fun)。
当从外部调用fun方法的时候,SubClass的fun方法就把父类的fun方法隐藏了。
如果子类不重写fun方法的话,则查找它的父类的fun方法。

[解决办法]
你这个程序没报错?
Java code
public void fun(){System.out.println("Sub");System.out.println("子类的i="+i);super.fun();}
[解决办法]
super是对父类的引用
[解决办法]
探讨
你这个程序没报错?Java codepublicvoid fun()
{
System.out.println("Sub");
System.out.println("子类的i="+i);super.fun();
}super.fun()应该放在方法中的第一行。

[解决办法]
super()是调用父类方法,这里是调用父类fun()方法
[解决办法]
希望更多人都能成为大师(钻研精神&&分享心理)

希望在不久的将来,中国会有自己的James Gosling

希望.....

热点排行