再细一点的执行顺序问题!求解,谢谢

csm810902 2010-03-17 10:39:15
class FatherClass
{
public FatherClass()
{
void m();
}

void m()
{
System.out.println("FatherClass");
}
}
public class ChildClass extends FatherClass
{
public ChildClass()
{
m();
super.m();
}

void m()
{
System.out.println("ChildClass");
}

public static void main(String[] args)
{
FatherClass f = new ChildClass();
ChildClass c = new ChildClass();
}
}
运行结果和详细的执行过程,搞java,这东西一定要弄明白的,谢谢指点.
...全文
97 4 打赏 收藏 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
godismydaughter 2010-03-17
  • 打赏
  • 举报
回复
你自己debug一下不就清楚了吗?
jimyx123 2010-03-17
  • 打赏
  • 举报
回复
在对象内部之所以能调用非静态的方法,是因为存在一个this的引用
看下JNI就知道调用非静态方法都要传入一个对象引用 印象中是第一个参数
FatherClass f = new ChildClass();
这样在初始化父类的时候 得到的this类型是子类 所以自然就会调用子类的方法
如果想他调用自己的方法 就加上静态修饰
quansheng3510 2010-03-17
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 leehomwong 的回复:]
FatherClass
ChildClass
ChildClass
FatherClass
FatherClass构造函数不要void
[/Quote]
这个不对吧,你自己运行下,是

ChildClass
ChildClass
FatherClass
ChildClass
ChildClass
FatherClass
24K純帥 2010-03-17
  • 打赏
  • 举报
回复
FatherClass
ChildClass
ChildClass
FatherClass
FatherClass构造函数不要void

62,620

社区成员

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

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