首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

重载能否改变返回值的类型?该如何处理

2012-03-09 
重载能否改变返回值的类型?Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型? 方法的

重载能否改变返回值的类型?
Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?

 方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被"屏蔽"了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。

疑问: 不知大家是怎么理解红色那句话的? 我认为是不能的, 返回类型不一样都不能构成重载了.

int (int x){
  ......
}


void (int x){
  ......
}


[解决办法]
我也认为不能.
[解决办法]
恩,连编译都不能通过!
[解决办法]
http://blog.csdn.net/jk88811/archive/2007/09/21/1794866.aspx

int (int x){ 
...... 

void (int x){ 
...... 

这样的重载将编译出错

而类似
int method(List<Integer> i) {

}
String method(List<String> s) {

}
这样的被称为泛型重载, List<Integer>和List<String>在运行时的类型都是List, 但这样的重载是可以的...



[解决办法]
来自Java32问。
[解决办法]
重载的4个特性:1函数名相同。。。。2返回类型相同。。。。3函数名字相同。。。4参数个数相同
[解决办法]

Java code
Overloaded的方法是可以改变返回值的类型。这句话是正确的,唯一区分方法重载的是方法的参数列表不同,当参数列表不同时就可改变其返回类型package alltest;public class OverLoadTest {    public void m1(int x){}    public int m1(int x,int y){return 12;}//    public String m1(int x){return "12";} //error!Duplicate method m1(int)                                              //in type OverLoadTest     public String m1(int x,int y,int z){return "abc";}    public int m1(String x,int y){return 12;};}当参数列表不同时,能达到区分重载时,就可以改变方法的返回类型
[解决办法]
可以啊 , 楼上 正解
[解决办法]
8楼正解,但是根据返回类型不同,来区分重载是不行的。
[解决办法]
Java code
    public Object Function(){        return null;    }        public int Function(String A){        return 0;    }        public void Test(){        // 方法2重载了方法1        Object _Result1 = Function();  // 调用方法1        int _Result2 = Function("1"); // 调用方法2    }
[解决办法]
重载主要表现在参数上面,当能够区分重载时在改变返回值类型.
[解决办法]
重载在改变了参数特征的情况下,可以。
[解决办法]
重载是说在同一个类中(与父类与无关吧)方法名称相同,参数的个数,或者类型,或者顺序不同就叫重载了。所以说与方法的返回值类型无关,想返回什么就返回什么。
[解决办法]
可以的
[解决办法]
8楼正解
[解决办法]
Java 不允许仅返回值不同的方法的!

热点排行