当前位置:  技术问答>java相关

scjp题又一问题

    来源: 互联网  发布时间:2015-05-27

    本文导语:  public class Test {      public void method(Object o) {         System.out.println("Object Version");       }      public void method(String s) {         System.out.println("String Version");       }      public static void...

public class Test {

     public void method(Object o) { 
       System.out.println("Object Version"); 
     }

     public void method(String s) { 
       System.out.println("String Version"); 
     }

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


1.   public class Test {

 2.     public void method(StringBuffer sb) { 
 3.       System.out.println("StringBuffer Verion"); 
 4.     }

 5.     public void method(String s) { 
 6.       System.out.println("String Version"); 
 7.     }

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

为什么第一个就可以输出"String Version"而第二个不可以呢?

|
在重载方法中参数有可能混淆的情况下,编译器使用下面的策略:
1. 如果发生混淆的位置上的所有参数类型在继承关系上构成一棵有分支的树,报错。
2. 如果这些参数类型在继承关系上是一个队列,匹配类体系中最低级的那个。

程序:
public class InheritanceTest
{
public class C_1 extends Object {}

public class C_1_1 extends C_1 {}
public class C_1_2 extends C_1 {}

public class C_1_1_1 extends C_1_1 {}
public class C_1_1_2 extends C_1_1 {}
public class C_1_2_1 extends C_1_2 {}

public void pr( C_1 c )
{
System.out.println( "C_1" );
}

public void pr( C_1_1 c )
{
System.out.println( "C_1_1" );
}

public void pr( C_1_1_1 c )
{
System.out.println( "C_1_1_1" );
}

//报错
public void pr( C_1_2_1 c )
{
System.out.println( "C_1_2_1" );
}

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

|
首先

java.lang.Object是顶级的类

java.lang.String和java.lang.StringBuffer都是Object的子类

而且String和StringBuffer是同级的

|
null可是任意对象类型的,所以JVM可以认为它是String类型的,也可以是StringBuffer类型的,这时就产生了二义性错误!

    
 
 

您可能感兴趣的文章:

  • —— SCJP认证相关问题 ——
  • SCJP问题?高手请进!
  • 不知谁可以告诉我,scjp认证的有关问题?
  • 关于SCJP考试(非技术问题)
  • 关于SCJP考试的问题
  • 问个关于SCJP考试的问题。
  • 一个关于SCJP1。4的问题,我吃饭回来就给分。
  • 想考scjp,请教几个问题。。。。。。。。。。。。。。。
  • [scjp问题] 关于静态方法中间的变量调用错误问题
  • 请教scjp中的问题
  • scjp问题.帮忙
  • 比较基础但很重要的问题!急谢谢因为最近就要考SCJP了!
  • SCJP垃圾收集的问题....
  • 关于SCJP考试(非技术问题),再次散分
  • 关于SCJP1.4认证的几个问题
  • scjp问题
  • scjp简单问题,立即结帐!!!!
  • 问个我自己都感到弱智的问题,是一道SCJP的题
  • scjp问题,关于类型转换。
  • scjp真题的问题!
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 小弟想考scjp,贡献一些scjp考试的网址?
  • 我一个伙计考过SCJP一个多月了,怎么SCJP的证书还没有来呀?到哪里问去呀?
  • 过了SCJP和没过SCJP的都请进来,谢谢!
  • 我一直搞不清什么sl275与scjp1.2,scjp1.4的关系?那位能说说么
  • [提议] 既然考scjp的人这么对,提议设立scjp专栏,响应的进来领分!
  • 英文不是很好,为了考SCJP,好多地方看英文书,概念什么的比较模糊,哪有详细的中文的Java语言教程呀?最好和SCJP想符合的,别告诉我《Think in Java》呀!那本书我烦透了!
  • 检验你的SCJP能力!!!来自SUN的SCJP题库中的一道经典线程题目,你能做出正确的答案吗???
  • 谁有scjp练习题,越新越好?谢了
  • 险过scjp
  • 50分求助:哪儿能搞到SCJP的教程资料与试题资料!!!!!
  • 请推荐一些SCJP认证书籍和其他资料
  • 求助!本人下个星期考SCJP急需好的题库!高分求教!
  • 谁能告诉我SCJP考题的网址吗?
  • SCJP
  • 请问scjp/scjd和高程比,哪个分量重些啊?
  • *考过scjp的给个意见*
  • 在考SCJP中,很多人说的104和147指的是什么?
  • 通过了SCJP认证以后,还能干什么?
  • 寻找scjp认证考试方面的资料,培训资料和试题,谢谢!
  • 有近期过SCJP的朋友么?请进来.........


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3