标题:[求助]关于构造方法的问题,为什么是B
只看楼主
system32
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:58
帖 子:3096
专家分:0
注 册:2006-9-24
 问题点数:0 回复次数:5 
[求助]关于构造方法的问题,为什么是B

为什么会输出B  讲解下。谢谢了 !
class A
{
A()
{
m();
}
void m()
{
System.out.println("A");
}
}

class B extends A
{
void m()
{
System.out.println("B");
}
public static void main(String[] args)
{
new B();
}
}

搜索更多相关主题的帖子: 构造 void println class System 
2006-12-29 13:38
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
得分:0 

这就是动态绑定

因为它在调用父类的构造函数的时候要调用m()方法,此时对象真正指向的是B的引用,所以调用是定义在B类里面的m()方法

所以输出就是B了


可惜不是你,陪我到最后
2006-12-29 13:49
system32
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:58
帖 子:3096
专家分:0
注 册:2006-9-24
得分:0 

谢谢了啊。 版主!


[glow=200,blue,1]世界上妞是无限的,而我们的精力是有限的,用有限去搞无限,死定了。要用有限的精力去泡一个有钱妞,要发达,吃软饭![/glow]
2006-12-29 13:53
syab11
Rank: 1
等 级:新手上路
帖 子:60
专家分:0
注 册:2007-7-21
得分:0 
那在什么时候才会调用父类的构造函数?是子类在创建对象时就会调用吗?

2007-11-26 15:32
hwoarangzk
Rank: 4
来 自:冰封王座
等 级:贵宾
威 望:12
帖 子:1894
专家分:0
注 册:2007-7-17
得分:0 
对的,创建子类对象的时候会先调用父类的构造函数,再调用子类的构造函数

I'm here, as always...
2007-11-26 15:45
sandykuang
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2007-11-26
得分:0 
顶,重写了父类的void m()方法
2007-11-26 15:49



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-112945-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.159787 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved