它爲什麼打印整數? 在編譯時,方法調用綁定到類A的方法。 我希望在B中我不是壓倒一切的。創建其他方法意味着方法重載不同的類。 但運行時發生了什麼?它爲什麼打印整數
class A{
void method(Integer i)
{
System.out.println("Integer");
}
}
class B extends A
{
void method(int i)
{
System.out.println("Int");
}
}
public class Puzzle{
public static void main(String ar[]){
A a = new B();
a.method(20);
}
}
'方法(int i)'不是'方法(整數i)'的重寫。這是一個過載。 A'方法'被調用是正常的。 –
方法不具有相同的簽名,因此它不覆蓋它是重載的,因此它直接取int而不是Integer。 – Musaddique