当前位置: 首页 > 面试题库 >

使用“空”引用调用重载函数

白高逸
2023-03-14
问题内容

假设我有以下重载函数

public class Test {

    public static void funOne(String s){
        System.out.print("String function");
    }

    public static void funOne(Object o){
        System.out.print("Object function");
    }

    public static void main(String[] args) {            
        funOne(null);
    }
}

为什么要funOne(null)调用带有String参数签名的方法?这里重载的优先顺序是什么?


问题答案:

在这种情况下,类层次结构中较低的类将具有优先权。换句话说,更具体的类类型,String在这种情况下将是因为StringObject技术上扩展了。

如果您有以下内容

public class A {
    ...
}

public class B extends A {
    ...
}

然后,当您定义如下的重载方法时:

public void test(A object) {
    ...
}

public void test(B object) {
    ...
}

然后调用test(null)调用第二个方法,因为B它在类层次结构中较低。



 类似资料:
  • C++ 重载运算符和重载函数 函数调用运算符 () 可以被重载用于类的对象。当重载 () 时,您不是创造了一种新的调用函数的方式,相反地,这是创建一个可以传递任意数目参数的运算符函数。 下面的实例演示了如何重载函数调用运算符 ()。 #include <iostream> using namespace std; class Distance { private: int

  • 问题内容: 在某些语言中,可以使用特殊的保留字(例如 ref 或 val) 通过引用或值传递参数。当您将参数传递给Python函数时,它永远不会在离开函数时更改参数的值。唯一的方法是使用 全局 保留字(或据我目前的了解)。 范例1: 会显示 显示k为不变 在此示例中,变量n从不更改 范例2: 在此示例中,变量n已更改 Python中有什么方法可以调用函数并告诉Python 该参数 是 值 还是 引

  • C++ 用三种方式向函数传递数值:按值调用(call-by-value)、用引用参数按引用调用(call-by-reference reference argument)和用指针参数按引用调用(call-by-reference pointer argument)。第3章比较了按引用调用与按值调用,本章主要介绍用指针参数按引用调用。 第3章曾介绍过,return 可以从被调用函数向调用者返回一个值

  • 这是python游戏的基本战利品表。 常见的,如果滴滚动到任何数字,包括13 不寻常,如果下降滚动14通过,并在18 如果跌落在19或20滚动 即使在满足条件的情况下,该程序也会忽略罕见掉落表,而是从罕见掉落表中取出一个项目,例如掉落=20 1000金币 有人能解释一下这里的问题吗?

  • null 代码也可以在TypeScript游乐场上查看。

  • 问题内容: 我不确定如何解释,但是当我跑步时 在谷歌浏览器中,我得到的输出像 反引号为什么要调用log函数,为什么要对它进行索引? 由Catgocat在JS室提出的问题,但是除了关于模板化字符串的事情之外,没有任何其他答案是合情合理的。 问题答案: 在ES-6中被称为“标记模板”,有关它们的更多信息,在这里,有趣的是,我在即时通讯的加星标部分中找到了该链接。 但是代码的相关部分在下面(您基本上可以