黑马程序员技术交流社区

标题: 这样是重载吗?为什么? [打印本页]

作者: 张绍成    时间: 2011-12-26 10:12
标题: 这样是重载吗?为什么?
本帖最后由 张绍成 于 2011-12-26 16:49 编辑

public static void method(Vector<Date> v1){...}
public static void method(Vector<Integer> v1){...}
作者: yunqiangshan    时间: 2011-12-26 10:20
算是重载,但是没有什么实际意义,父类引用调用的还是父类的静态方法,子类引用调用子类的静态方法,还是各用各的,多态时,父类引用还是调用父类的静态方法,可以这么写,但是没有什么意义。
作者: 吴上储    时间: 2011-12-26 11:15
怎么能算重载呢?
public static void method(Vector<Date> v12){...}
public static void method(Vector<Integer> v1){...}
编译器都过不了, 编译器编译完后会把<>里面的东西都去掉,就变成了
public static void method(Vector v1){...}
public static void method(Vector v1){...}
你说是不是一样的?
作者: 于冰    时间: 2011-12-26 14:24
public static void method(Vector v1){...}
public static void method(Vector v1,Vector v2){...}才是重载。
方法重载的要求是在同一个类中方法名相同而参数列表不同。参数列表不同可以是参数类型不同,也可以是参数的个数不同。楼主的意思如果是:第一个函数传入的参数类型是date类,第二个函数传入的参数类型是整型,那么这两个方法就是重载。
不太明白<>这个符号是做什么的....

作者: 张绍成    时间: 2011-12-26 16:46
本帖最后由 张绍成 于 2011-12-26 16:47 编辑
iceeyes992 发表于 2011-12-26 14:24
public static void method(Vector v1){...}
public static void method(Vector v1,Vector v2){...}才是重 ...


Vector<Integer>   ?泛型!
作者: 张绍成    时间: 2011-12-26 16:49
吴上储 发表于 2011-12-26 11:15
怎么能算重载呢?
public static void method(Vector v12){...}
public static void method(Vector v1){... ...

版主就是版主?  这个问题是 张孝祥老师 在 Java 基础加强里面  验证过的。强调过的!  
向张老师、版主学习!   哈哈
作者: yunqiangshan    时间: 2011-12-26 18:20
吴上储 发表于 2011-12-26 11:15
怎么能算重载呢?
public static void method(Vector v12){...}
public static void method(Vector v1){... ...

public static void method(Vector<Date> v12){...}
public static void method(Vector<Integer> v1){...}
单句任意一句编译都能过,两句放一起就过不了了,
错误: 名称冲突: method(Vector<Integer>)和method(Vector<Da
te>)具有相同疑符
        public static void method(Vector<Integer> v1){}
                           ^
作者: 吴上储    时间: 2011-12-26 18:42
yunqiangshan 发表于 2011-12-26 18:20
public static void method(Vector v12){...}
public static void method(Vector v1){...}
单句任意一句 ...

对啊,两句放一起肯定过不了!




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