gpt4 book ai didi

java - 如何在 Java 中调用给定特定参数类的不同方法

转载 作者:行者123 更新时间:2023-11-30 10:08:12 25 4
gpt4 key购买 nike

假设我们有这些代码:

class Parent {}

class Child1 extends Parent {}

class Child2 extends Parent {}

class Main {
static void method(Parent obj) {}
static void method(Child1 obj) {}
static void method(Child2 obj) {}
public static void main(String[] arg) {
Parent obj1 = new Child1();
Parent obj2 = new Child2();
method(obj1); //call method(Child1 obj)
method(obj2); //call method(Child2 obj)
}
}

如何获得类似的效果,以便将对象传递给具体方法而不是一般方法?

------------------------服务器参数示例----------------

class Parent {}

class Child1 extends Parent {}

class Child2 extends Parent {}

class Main {
static void method(Parent obj1, Parent obj2) {}

static void method(Child1 obj1, Child1 obj2) {}

static void method(Child1 obj1, Child2 obj2) {}

public static void main(String[] arg) {
Parent obj1 = new Child1();
Parent obj2 = new Child2();
method(obj1, obj1); //call method(Child1 obj1, Child1 obj2)
method(obj1, obj2); //call method(Child1 obj1, Child2 obj2)
}
}

最佳答案

你问的是方法重载。方法重载在编译时解决,因此使用相关变量的编译时类型来确定执行哪个方法。

因此method(obj1) 和method(obj2) 将始终调用static void method(Parent obj),因为编译时类型obj1obj2Parent

关于java - 如何在 Java 中调用给定特定参数类的不同方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53866307/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com