JAVA中、父类和子类的一个问题

如果子类的方法覆盖了父类的、那怎么调用父类的方法?... 如果子类的方法覆盖了父类的、那怎么调用父类的方法? 展开
 我来答
Big嘴
2011-06-26 · TA获得超过4097个赞
知道小有建树答主
回答量:697
采纳率:50%
帮助的人:636万
展开全部
这个问题分几种情况,现在就按情况来分析一下:
1、在子类中调用父类中被子类覆盖的方法:
这个情况就是您说的用super来显示的调用。因为在子类中还有一个和父类同样的方法,如果你只写方法名子,编译器不可能知道你想要掉的是哪个方法,他自作聪明的回去调用子类当中的那个。所以这种情况下,你要用super来显示的说明你要调用的是父类中的方法!
2、在其他类中的调用父类方法:
这种情况就在简单不过了。你创造(New出来的!)的是哪类对象(父类对象或是子类对象)他就会去调用父类或是子类中的相应的方法,这个和多态不冲突!
3、静态方法:
静态方法的调用是和类绑定的,类的静态方法又叫类方法,也就是这个方法是属于这个类的,而不是属于这个类创建出来的某个对象的。所以静态方法的调用要用“类名.静态方法名”来调用! 对了,静态方法的调用是需要在另外一个静态方法中的哦,否则编译会错误的!
乌鸦热点
2011-06-26 · TA获得超过615个赞
知道小有建树答主
回答量:266
采纳率:0%
帮助的人:216万
展开全部
如果父类方法是function(),子类重写了这个方法,那么调用父类方法用super.function(),static的那就直接用类名呀,类名.function();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
盛敬恒
2011-06-26
知道答主
回答量:4
采纳率:0%
帮助的人:0
展开全部
如果子类没有重写父类的方法,调用父类的方法的时候,实际上是去父类的内存中实现,可以调用父类方法。
如果子类重写了父类的方法,那么,你虽然上溯造型到了父类,由于内存还是子类,该方法的实现还是在子类,所以用实例化的对象是调用不到父类的,这种情况下,只能用super关键字。
更多追问追答
追问
用super不可以调用么?如果是static的调用不了怎么办?
追答
super 能调用啊 !静态方法不能访问非静态方法和变量,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-06-26
展开全部
static方法的正规调用方法是:
classname.staticmethodname();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式