| perryhg 回复于:2005-05-23 02:59:50
|
很多class在初始化的时候,会设置一些内部变量以供其他方法是用,当你继承了这些class的时候,默认不会自动调用这些初始化方法,只有你用 super()的时候,才会调用父类的方法对内部变量进行初始化。
|
| moonwalk_duyi 回复于:2005-05-23 17:40:51
|
调用父类直接就super(),不就可以了吗?
为什么car.super(); 没明白为什么这么写~-.-||
好像不是你说的那个意思吧? :em02:
|
| lemonboy 回复于:2005-05-23 23:16:47
|
嘎嘎,是car的surper()???
看样子是这样子
|
| sakulagi 回复于:2005-05-24 14:42:53
|
因为如果直接写super(),调用的是Car.Wheel(),不是Car()
|
| beginer1 回复于:2005-05-24 17:42:04
|
这样也行呀?构造函数可以在类内任意调用?
|
| moonwalk_duyi 回复于:2005-05-24 20:14:35
|
[quote:b8edcfed97="sakulagi"]因为如果直接写super(),调用的是Car.Wheel(),不是Car()[/quote:b8edcfed97]
谢谢!:) :em02:
你的图片好酷呀! :em09:
|
| sty 回复于:2005-05-25 09:55:45
|
必须这样写。
因为PlaneWheel存在的前提必须存在一个Car的实例,
所以car.super()仍然调用的是Car.Wheel的构造函数,
不可能 调用Car的构造函数,毕竟Car不是PlaneWheel
的父类
|
| sakulagi 回复于:2005-05-25 20:35:27
|
楼上的说的是对的。我理解错了。
楼上的朋友,希望以后常来捧场啊。
|
| netcafe 回复于:2005-05-26 16:04:12
|
PlaneWheel中掉用Wheel的无参构造函数是必然的,缺省的已经调用了super(),Car.super()就是额外调用Car的构造函数么。
在构造函数里print一段文字就知道了。
|
| netcafe 回复于:2005-05-26 16:18:39
|
才疏学浅,刚才理解错误了。调试了一下才明白。呵呵,海涵。
|