注册
登录
论坛
搜索
万卷图书
»
Java语言
» JAVA入门123第十一章问题请教
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
发短消息
加为好友
mira
当前离线
UID
48289
帖子
4
精华
0
积分
0
阅读权限
10
在线时间
2 小时
注册时间
2016-5-3
最后登录
2016-5-16
新手上路
1
#
打印
字体大小:
t
T
mira
发表于 2016-5-3 08:29
|
只看该作者
JAVA入门123第十一章问题请教
JAVA
JAVA入门123第十一章问题请教,11.3.8中提到覆盖,子类调用方法时难道不是应该先从自己的方法里面找吗?为什么没覆盖就是用的父类的方法,而不是优先用子类自己的方法?这一点没搞明白,请大虾赐教,谢谢
收藏
分享
评分
回复
引用
订阅
TOP
发短消息
加为好友
fwbook
当前离线
UID
1
帖子
2324
精华
0
积分
0
阅读权限
200
在线时间
1590 小时
注册时间
2009-7-30
最后登录
2024-12-21
管理员
2
#
fwbook
发表于 2016-5-3 09:41
|
只看该作者
假设父类有方法A。而子类没有覆盖方法A。那子类调用的方法A的时候,因为子类没有重新定义方法A,就只能用父类的方法A了。
在网上购买本书的读者,请给本书发一个好评。谢谢大家。
回复
引用
TOP
发短消息
加为好友
mira
当前离线
UID
48289
帖子
4
精华
0
积分
0
阅读权限
10
在线时间
2 小时
注册时间
2016-5-3
最后登录
2016-5-16
新手上路
3
#
mira
发表于 2016-5-3 16:17
|
只看该作者
回复
2#
fwbook
但P318页中子类有和父类有一样的方法privateMethed(),为什么最后调用的还是父类的privateMethed()方法?
回复
引用
TOP
发短消息
加为好友
fwbook
当前离线
UID
1
帖子
2324
精华
0
积分
0
阅读权限
200
在线时间
1590 小时
注册时间
2009-7-30
最后登录
2024-12-21
管理员
4
#
fwbook
发表于 2016-5-4 09:39
|
只看该作者
回复
3#
mira
test方法在定义的时候,调用的就是父类的privateMethod。而子类没有覆盖该方法,所以这个时候调用的还是父类的方法。如果test调用的是子类方法,那程序员在写test代码的时候,根本不知道子类的方法是怎么实现的,从而存在代码执行的不确定性了。
回复
引用
TOP
发短消息
加为好友
mira
当前离线
UID
48289
帖子
4
精华
0
积分
0
阅读权限
10
在线时间
2 小时
注册时间
2016-5-3
最后登录
2016-5-16
新手上路
5
#
mira
发表于 2016-5-5 09:02
|
只看该作者
回复
4#
fwbook
还是不太明白,test()是子类对象调用方法,照理说应该是调用子类里的方法呀?
回复
引用
TOP
发短消息
加为好友
fwbook
当前离线
UID
1
帖子
2324
精华
0
积分
0
阅读权限
200
在线时间
1590 小时
注册时间
2009-7-30
最后登录
2024-12-21
管理员
6
#
fwbook
发表于 2016-5-5 10:51
|
只看该作者
回复
5#
mira
问题是test方法是在父类中定义的。子类是继承过去的。在哪里定义,就应该遵循哪里的规则。否则,一个方法在没有被覆盖的情况下,在不同子类执行,有不同的效果。那调用就存在不确定性了。这不符合编程的原则了。
回复
引用
TOP
发短消息
加为好友
mira
当前离线
UID
48289
帖子
4
精华
0
积分
0
阅读权限
10
在线时间
2 小时
注册时间
2016-5-3
最后登录
2016-5-16
新手上路
7
#
mira
发表于 2016-5-5 15:19
|
只看该作者
回复
6#
fwbook
我忽略了test()方法是在父类里定义的,现在想明白了,谢谢
回复
引用
TOP
返回列表