Java 中的重载和多重调度
2022-09-01 12:58:41
我有一个集合(或列表或数组列表),我想在其中放置字符串值和双精度值。我决定让它成为对象的集合,并使用重载 ond 多态性,但我做错了什么。
我运行了一个小测试:
public class OOP {
void prova(Object o){
System.out.println("object");
}
void prova(Integer i){
System.out.println("integer");
}
void prova(String s){
System.out.println("string");
}
void test(){
Object o = new String(" ");
this.prova(o); // Prints 'object'!!! Why?!?!?
}
public static void main(String[] args) {
OOP oop = new OOP();
oop.test(); // Prints 'object'!!! Why?!?!?
}
}
在测试中,参数类型似乎是在编译时决定的,而不是在运行时决定的。为什么?
这个问题与以下方面有关:
编辑:
好的,要调用的方法在编译时决定。是否有避免使用运算符的解决方法?instanceof