Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型? 方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被"屏蔽"了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。疑问: 不知大家是怎么理解红色那句话的? 我认为是不能的, 返回类型不一样都不能构成重载了.int (int x){
  ......
}
void (int x){
   ......
}

解决方案 »

  1.   

    以上是一道java面试题, 答案也是网上的, 期待高手解释一下
      

  2.   

    http://blog.csdn.net/jk88811/archive/2007/09/21/1794866.aspxint   (int   x){ 
        ...... 

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

    这样的重载将编译出错而类似
    int method(List<Integer> i) {}
    String method(List<String> s) {}
    这样的被称为泛型重载, List<Integer>和List<String>在运行时的类型都是List, 但这样的重载是可以的...
      

  3.   


    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;};}当参数列表不同时,能达到区分重载时,就可以改变方法的返回类型
      

  4.   

    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
    }
    这样是可以的啊, 重载参数列表不同,返回类型也可以不一样。
      

  5.   

    Override重写的话JDK1.4是需要返回类型一样才可以重写父类的方法的,但是到了JDK1.5增加了一个协变返回类型所以这个约束也不存在了。
      

  6.   

    Java 不允许仅返回值不同的方法的!
      

  7.   

    int (int x){
      ......
    }
    void (int x){
      ......
    }
    以上代码不是重载,因重载是方法的参数列表必须不相同,参数个数、参数类型、参数顺序,只要满足其一就行,如果改为下确的重载
    int (int x){
      ......
    }
    void (int x,int y){
      ......
    }
    则可以通过编译
      

  8.   

    返回类型不一样那就不叫重载了!!
    public  String Student();
    public String Student(int i);
    public String Student(int i,String j);
    public String Student(int i,String S,int k);
      

  9.   

    以前是不可以的,但是现在出了个泛型重载,Overloaded的方法可以改变返回值的类型。