方法重载解决方案

时间:2014-07-09 10:44:25

标签: java oop inheritance overloading

如果类B扩展了类A:以下代码的输出是什么?

 package com.swquiz.overloading;
public class TitBitOverloading7 {
    public static void main(String[] args) {
        overload((A)null);
        overload((B)null);
    }
    public static void overload(A a) {
        System.out.println("A");
    }
    public static void overload(B b) {
        System.out.println("B");
    }
}

Ans - A B. 我不知道怎么样?你能解释一下如何处理null。

1 个答案:

答案 0 :(得分:1)

您可以将null转换为任何引用类型,而不会出现任何异常。

输出

A
B

原因,在方法调用期间将考虑发送的对象类型。由于你有一个分别为A和B的类型转换,所以将调用的方法由运行时传递的参数的类型(多态)标识

null是您将传递给特定方法的参考值。