黑马程序员技术交流社区

标题: 重载的一点问题 [打印本页]

作者: 唐进    时间: 2012-10-25 22:44
标题: 重载的一点问题
   public int method1(int a, long b) { return 0; }
   

    private int method1(int a, int b) { return 0; }
   
    publicstaticvoid main(String[] args) {
       // TODO Auto-generated method stub

    }
}
为什么会出现错误,越详细越好
作者: 会飞的鱼    时间: 2012-10-25 23:03
哥们,出现什么错误?static里面只能调用static方法??改成这个public static  int method1(int a, long b) { return 0; }???
作者: 于连林    时间: 2012-10-25 23:05
因为long和int 型的参数有交集吧 有的区分不开吧
作者: 葛旭东    时间: 2012-10-25 23:32
本帖最后由 葛旭东 于 2012-10-25 23:38 编辑

了解基本数据类型。

int 是32位,long 是64位;即long的范围比int广,如果写了一个数在int范围的话,

则不好判断是int型还是long型。所以两个方法不能共存!

作者: 奋斗的青春    时间: 2012-10-25 23:39
本帖最后由 吴愿涛 于 2012-10-25 23:45 编辑

因为你重载的方法是用private修饰符修饰的 ,私有的方法不能呗调用 ,故而无用 ,出现警告 。
方法重载时,private修饰的方法重写,语法不报错,可以通过编译, 但是调用时不会使用新写的方法。仍然调用父类的方法。

nowarning.png (8.55 KB, 下载次数: 11)

未出现的问题

未出现的问题

warning.png (8.9 KB, 下载次数: 29)

出现的问题

出现的问题

作者: 刘学宾    时间: 2012-10-25 23:58
两个函数中参数列表的int和long类型不好被判断,容易混淆。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2