读书人

Java 满载构造器的选择

发布时间: 2012-12-19 14:13:14 作者: rapoo

Java 重载构造器的选择

在Java类中可以重载多个构造器,只要他们有不同的参数声明。

然而在使用中却会碰到这种令人混淆的情况:

?

class A{

???

??? public A(Object o){

?????? //...

??? }

?

??? public A(String[] strings){

?????? //...

??? }

????

??? //...

}

?

构造器调用的地方:

A a = new A( null );

?

这时虚拟机会使用的哪一个构造器来构造A对象呢?

答案:A

?

原因是Java重载的解析过程分为两个阶段:

?? 1,选取所有可以应用的方法或者构造器

?? 2,从1的列表中选择最精确的一个

?

Object是所有类型中最不精确的一个,所以null被看成String[]类型。

?

读书人网 >编程

热点推荐