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是什么?
{
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是什么?
解决方案 »
- 如何将java c/s程序部署到局域网,以及如何扫描端口,大家给我一些详细的代码和讲解,好吗?
- 求一正则表达式
- 小弟才进入CSDN混,想问个问题,但是没分,希望好心大峡帮帮忙,一个抽象类实现一个接口,需要实现接口里面所有的方法吗?
- 菜鸟如何学JAVA
- 关于LDAP服务器的问题?
- (求解)编写一个函数,把一个char(1 char=16bits) 分解成连个byte(1byte=8bits)。
- 对Jtable的某行、某列着色,着色后表格中的内容就没了,是什么原因?
- 大家讨论一下能过jboss设置连接池出现的问题1
- JBuilder 5 查询数据库的问题
- 哪个网站可以抓到电脑
- 关于代码的书写。。。
- 看java帮助时,几句话不理解请赐教!100分
其实这个时候SubClass类中是有两个fun方法的(this.fun和super.fun)。
当从外部调用fun方法的时候,SubClass的fun方法就把父类的fun方法隐藏了。
如果子类不重写fun方法的话,则查找它的父类的fun方法。
public void fun()
{
System.out.println("Sub");
System.out.println("子类的i="+i);
super.fun();
}
super.fun()应该放在方法中的第一行。
super是调用父类中的方法,this是调用类本身的方法或属性
当使用super调用父类的构造方法时,必须得放到调用方法的程序代码的第一行
ZangXT的这篇博文不错,有水平。钻研精神&&分享心理一般是大师所有。