构造函数和构造函数重载

时间:2012-09-08 07:31:22

标签: java c++ oop constructor constructor-overloading

任何人都可以解释一下吗?

当我们重载具有不同参数的构造函数时,其中一个具有数据类型对象而另一个具有数据类型字符串,当我们创建此类的对象时,将输入参数设置为null,它将使用string作为输入参数调用构造函数但不是具有输入参数作为Object的构造函数。既然Object是String的超类,那么任何人都可以告诉我它为什么用输入参数字符串调用构造函数吗?

Class A
{
  public A(Object o)
   {
     System.out.println("Object Drawn");
   }
   public A (String o)
   {
     System.out.println("String Drawn");
   }
   public static void main(String args[])
   {
   new A(null);
   }
 }

输出: - 绘制字符串

1 个答案:

答案 0 :(得分:3)

它总是调用最具体的匹配方法或构造函数。如果没有,你总是会打电话给Object并且超载就没有意义了。

这种方法在Java和C ++中使用