2008年7月29日

习惯先贴代码:
Code

 

 

下面是执行结果:

A.Fun()
B.Fun() using 'override'
BB.Fun() using 'new'
~~~~~~~~~~~~~~~~~~`
B.Fun() using 'override'
A.Fun()
A ab = new B(); ab's type is B
But ab is also A

 

好了,让我们来分析一下吧。

代码的前一部分就是“~~~~~~~~~~”之上,应该没有什么好说的了。

关键就是接下来声明“A ab = new B();”后,如果对父类的虚函数方法在子类中使用了override重写,则执行的是子类中的方法。如果在子类中是使用new来重写父类的方法,则执行的是父类的方法。

在这里,我们可以这样来理解,override就好比一个橡皮擦,当它出现时,直接擦除父类的方法,然后把自己的放在上面。

如果我们在子类中用的是new,则打个比方就是没有那个橡皮擦,该是谁的就是谁的。

posted @ 2008-07-29 22:15 啊不才 阅读(185) 评论(0) 编辑

导航

公告


英文名:Bright Chen
MSN:czhgary@hotmail.com
QQ:15095488
Email:biser007@gmail.com

Bright Chen 的个人主页
Bright Chen 的Facebook资料
创建您的徽章


小D划词查询功能:......


跟小D每日学口语,别偷懒啊~!!


《荀子·劝学》:“不积跬步,无以致千里;不积小流,无以成江海。”

洛阳.NET俱乐部 MSN群: group114825@msnzone.cn

欢迎光临:


IT新闻:

昵称:啊不才
园龄:7年6个月
粉丝:5
关注:10
<2008年7月>
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789

统计

搜索

 
 

常用链接

最新随笔

我的标签

随笔分类(39)

随笔档案(38)

相册

Good Web

Super Bloger

积分与排名

最新评论

阅读排行榜

评论排行榜

推荐排行榜