作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我们有这些代码:
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)
,因为编译时类型obj1
和 obj2
是 Parent
。
关于java - 如何在 Java 中调用给定特定参数类的不同方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53866307/
我是一名优秀的程序员,十分优秀!