标题:新学 java,关于覆盖和重载
取消只看楼主
未未来
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:182
专家分:157
注 册:2012-11-6
结帖率:94.87%
已结贴  问题点数:10 回复次数:2 
新学 java,关于覆盖和重载
程序代码:
public class cover_equal {

    public static void main(String[] args) {
        
        // TODO 自动生成的方法存根
father f=new son();
son f2=new son();
f.test(f2);
}    
}    
    class  father {
        int radius;
        public father() {
            // TODO 自动生成的构造函数存根
            radius=1;
        }
        public void  test(father f){
            System.out.println(1111);
        }    
    }
     
     class son extends father{
         public son() {
            // TODO 自动生成的构造函数存根
        radius=2;
         }
    public void test(son s){
        System.out.println(2222);
    }     
     }


这个测试里,f的实际类型是Circle 根据动态绑定运行的将是son类的test函数,而且函数的参数类型也是对的,为什么调用的是father类的test,当然这属于重载而不是覆盖.
如果把son的类中的test函数的参数s改成father类型,这样就办成了覆盖,然后会根据动态绑定运行son类的test.  初学请教一下原因.
搜索更多相关主题的帖子: java father 
2014-09-17 19:56
未未来
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:182
专家分:157
注 册:2012-11-6
得分:0 
回复 3 楼 love 云彩
谢谢,我想我学语言的方法有问题,学语言主要是会用,而不是过分在意细节
2014-09-17 22:52
未未来
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:182
专家分:157
注 册:2012-11-6
得分:0 
回复 5 楼 love 云彩
多谢指点。。。~
2014-09-17 23:56



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-436214-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.407103 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved