关于父类和子类同名static方法的调用

publicclassTest{publicstaticvoidmain(String[]args){Fatherfather=newFather();Fatherchi... public class Test{

public static void main(String[] args) {
Father father =new Father();
Father child = new Child();
System.out.println(father.getName());
System.out.println(child.getName());

}

}
class Father{
public static String getName(){
return "Father";
}
}
class Child extends Father{
public static String getName() {
return "Child";
}
}

求解释为什么child.getName()调用的是父类的getName()
展开
 我来答
hbkbjb
2017-07-30 · TA获得超过579个赞
知道小有建树答主
回答量:258
采纳率:50%
帮助的人:74.4万
展开全部
书上写的是 :“如果子类重写了父类的静态方法,那么子类对象的上转型对象不能调用子类的静态方法,只能调用父类的静态方法。(Java2实用教程(第四版) 耿祥义 张跃平编著 第128页的注:)
http://blog.csdn.net/xiangwanpeng/article/details/52504274?locationNum=12&fps=1
这是我看到的一篇关于static方法能否被重写的博文,博主结论是:Java中,如果父类中含有一个静态方法,且在子类中也含有一个返回类型、方法名、参数列表均与之相同的静态方法,那么该子类实际上只是将父类中的该同名方法进行了隐藏,而非重写。换句话说,父类和子类中含有的其实是两个没有关系的方法,它们的行为也并不具有多态性。正如同《Java编程思想》中所说:“一旦你了解了多态机制,可能就会认为所有事物都可以多态地发生。然而,只有普通方法的调用可以是多态的。”这也很好地理解了,为什么在Java中,static方法和final方法(private方法属于final方法)是前期绑定,而其他所有的方法都是后期绑定了。
Storm代理
2023-08-29 广告
"StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,I... 点击进入详情页
本回答由Storm代理提供
2695770
推荐于2018-04-11 · 超过22用户采纳过TA的回答
知道答主
回答量:189
采纳率:0%
帮助的人:76.2万
展开全部
class Father{
public static String getName(){
return "Father";
}
}
因为你把父类方法修饰成了static 子类不能重写父类的这个方法!去掉static就是你想要的结果了
追问
这个我懂.

我不懂的是,生成child对象的时候,也同时生成了一父类的对象,子类对象调用方法的时候不是首先检查子类是否有这方法的吗?static方法不能重写,但是子类也申明了这个方法,那么父类的getName方法和子类的getName方法存在于不同的内存空间,就是说子类的getName方法也是存在的,为什么却调用的是父类的getName方法?
追答
Father father =new Father();
Father child = new Child();
看看你创建对象的时候 你用父类的引用去创建了子类的事例
这样调用的还是父类的引用
你如果把第二行改成
Child child = new Child();
调用的就是子类自己的方法了
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
talentwei8899
2014-02-07 · TA获得超过768个赞
知道小有建树答主
回答量:669
采纳率:0%
帮助的人:382万
展开全部
说白了就是每个类的静态方法只有一份拷贝,和对象无关,这样就好理解了。
可以了解一下前期绑定和动态绑定的概念
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式