Topic: 请教一个关于null参数对多态的方法调用的有趣的问题

  Print this page

1.请教一个关于null参数对多态的方法调用的有趣的问题 Copy to clipboard
Posted by: woodworm
Posted on: 2003-12-08 16:23

public class Test
{
  public void myMethod(Object o)
  {
    System.out.println("My Object");
  }

  public void myMethod(String s)
  {
    System.out.println("My String");
  }

  public static void main(String args[])
  {
    Test t = new Test();
    t.myMethod(null);
  }

}

请问这里的null到底传递给了哪个签名的方法,为什么?

2.Re:请教一个关于null参数对多态的方法调用的有趣的问题 [Re: woodworm] Copy to clipboard
Posted by: dorrenchen
Posted on: 2003-12-09 11:52

void myMethod(String s) is called

I believe when matching methods found, jvm will call the methods with the most close object type. Since string is one type of object too, so method with String signature is chosen.

Good exam question.

3.Re:请教一个关于null参数对多态的方法调用的有趣的问题 [Re: woodworm] Copy to clipboard
Posted by: zhenggc
Posted on: 2003-12-12 13:46

更奇观,加一个Void后,编译器不清楚调用那个了,判断不了,编译期错误

public class T1{
String s1="Earth ";
public void print(String s){
System.out.println(s);
}

public void print(Object o){
System.out.println("o"+o);
}

public void print(int i){
System.out.println(i);
}

public void print(Void v){
System.out.println("v"+v);
}

public static void main(String[] args){
T1 t=new T1();
//t.print(null);
}
}

4.Re:请教一个关于null参数对多态的方法调用的有趣的问题 [Re: woodworm] Copy to clipboard
Posted by: zhenggc
Posted on: 2003-12-12 13:53

public class T1{
/*
public void print(String s){
System.out.println("s"+s);
}
*/
public void print(Object o){
System.out.println("o"+o);
}

public void print(int i){
System.out.println(i);
}

public void print(Void v){
System.out.println("v"+v);
}

public static void main(String[] args){
String s=null;

T1 t=new T1();
t.print(s);
t.print(null);
}
}
居然有两种结果

5.Re:请教一个关于null参数对多态的方法调用的有趣的问题 [Re: zhenggc] Copy to clipboard
Posted by: jigsaw
Posted on: 2003-12-14 14:47

zhenggc wrote:
public void print(Void v){
System.out.println("v"+v);
}


Black Eye (Void v) -- > 这个是什么?

6.Re:请教一个关于null参数对多态的方法调用的有趣的问题 [Re: woodworm] Copy to clipboard
Posted by: zhenggc
Posted on: 2003-12-16 13:54

类阿

7.Re:请教一个关于null参数对多态的方法调用的有趣的问题 [Re: woodworm] Copy to clipboard
Posted by: jigsaw
Posted on: 2003-12-16 16:00

藕。。。这样。。。。汗。。。不敢出。。。藕一直不知道有这个类。。。


   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923