ITPub博客

首页 > 应用开发 > Java > JAVA类型的问题

JAVA类型的问题

原创 Java 作者:壹頁書 时间:2014-03-22 19:26:57 0 删除 编辑

  1. public class Test {
  2.     public void test(Object obj) {
  3.         System.out.println("Object");
  4.     }

  5.     public void test(String str) {
  6.         System.out.println("String");
  7.     }

  8.     public static void main(String[] args) {
  9.         Test t = new Test();
  10.         t.test(null);
  11.     }
  12. }

求输出的结果。
我一开始认为会在编译期间报异常,但是回家测试的结果居然是"String"。
确实有点意思。
如果再增加一个类似的方法,就可以出现编译期异常了。


函数重载的两个类型有继承关系,如果不能确定调用哪个函数的时候,都会交给子类。
函数重载有三个类型,其中两个继承自一个类,那么就彻底不能确定调用的函数了。所以编译异常。


  1. public class Test {
  2.     public void test(Animal animal) {
  3.         System.out.println("Animal");
  4.     }

  5.     public void test(Cat cat) {
  6.         System.out.println("Cat");
  7.     }
  8.     
  9.     public static void main(String[] args) {
  10.         Test test = new Test();
  11.         test.test(null);
  12.         //显示 Cat
  13.     }
  14. }

  15. class Animal {
  16. }

  17. class Cat extends Animal {
  18. }
再增加一个Dog类型,就不能默认选择子类的方法了。


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29254281/viewspace-1127386/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 连续i++问题
请登录后发表评论 登录
全部评论

注册时间:2013-10-19

  • 博文量
    621
  • 访问量
    5990734