【发布时间】:2014-08-30 08:29:19
【问题描述】:
如果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 吗?
【问题讨论】:
-
Java 是按值传递,但为对象传递的值是对象引用。您首先使用 A 的引用调用该方法,然后再使用 B 的引用来调用该方法的事实是导致您的行为的原因。对象值都是 null,但引用值是 A 和 B,引用是传递的内容。请参阅this post 进行深入讨论。
标签: java oop inheritance overloading