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