重载能否改变返回值的类型?
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 不允许仅返回值不同的方法的!