您的位置:程序门 -> java -> j2se / 基础类



上转型对象的问题(见扫描)


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


上转型对象的问题(见扫描)[已结贴,结贴人:sbyvi]
发表于:2007-09-26 12:07:28 楼主
代码见下:
http://www.i2i.org.cn/webexhibit/09251.jpg
http://www.i2i.org.cn/webexhibit/09252.jpg
http://www.i2i.org.cn/webexhibit/09253.jpg

main中的f();和g(),为什么前者操作的是被隐藏的n,后者操作的是重新定义的n?
发表于:2007-09-26 12:10:021楼 得分:0

发表于:2007-09-26 13:38:042楼 得分:10

父类只能操作对父类成员进行操作,因为只有double   类型的n可以操作,当然是操作   double     类型的n了,
子类既能从父类那继承成员,同时又有自己的成员,当成员和父类的名字一样时,则“覆盖“了父类的成员了,b.n   这里操作的就是自己本身的n   ,而不是父类继承的n   ,因为父类的n被”隐藏“掉了。
发表于:2007-09-26 14:48:283楼 得分:10
前面一篇里我也跟你说了,当成员和父类的名字一样时,则“覆盖“了父类的成员了.比如:脯乳动物是a类,它有叫声的属性n,狗(b)继承a,它也定义了叫声的属性n,狗有自己的叫声("wowo"),你a再怎么改叫声的属性n影响不到狗的叫声.不知道这个比喻恰当吗?你懂吗?
发表于:2007-09-26 16:33:074楼 得分:5
子类中有重写的方法则转型对象调用子类的方法,必须重复变量名。。
父类和子类中变量如果重复,则使用隐藏的父类变量。。
父类没有成员变量/方法,子类有成员变量/方法,不可使用/调用,除非(子类名)   上转型对象。
父类有成员变量/方法,子类没有成员变量方法,则可以使用/调用。


日,隐藏使用变量,重复使用方法,百试百爽
上转型对象可以操作子类继承的或是(父类)的隐藏变量。上转型对象可以使用继承的或者子类重写的方法~
发表于:2007-09-26 18:30:215楼 得分:0
我知道了,如果一个函数f()里面比如要操作一个叫n的变量,先看一下定义f()的类里面有没有声明这个变量,如果有就用本类里的。如果没有会到别的类去找(比如父类)。


快速检索

最新资讯
热门点击