相关疑难解决方法(0)

方法重载null参数

我添加了三个带参数的方法:

public static  void doSomething(Object obj) {
    System.out.println("Object called");
}

public static  void doSomething(char[] obj) {
    System.out.println("Array called");
}

public static  void doSomething(Integer obj) {
    System.out.println("Integer called");
}
Run Code Online (Sandbox Code Playgroud)

当我调用时doSomething(null),编译器会将错误视为模糊方法.所以是问题,因为Integerchar[]方法,或IntegerObject方法呢?

java oop null overloading

128
推荐指数
3
解决办法
7万
查看次数

多态和方法重载

我有一个快速而直接的问题:

我有这个简单的课程:

public class A
{
    public void m(Object o)
    {
      System.out.println("m with Object called");
    }

    public void m(Number n)
    {
       System.out.println("m with Number called");
    }
    public static void main(String[] args)
    {
       A a = new A();
       // why will m(Number) be called?
       a.m(null);
    }
}
Run Code Online (Sandbox Code Playgroud)

更新:实际上是实际调用Number的方法.对此感到抱歉.

如果我调用am(null),则使用Number参数调用方法.

我的问题是:这是为什么?这个指定的java语言规范在哪里?

java polymorphism overloading

27
推荐指数
3
解决办法
5296
查看次数

标签 统计

java ×2

overloading ×2

null ×1

oop ×1

polymorphism ×1