Java 面試題關於方法的重寫

好想學習呀發表於2020-12-31

今天在刷面試題的時候,發現一道比較新穎的題目,關於方法的重寫。

原題如下:
題目問:此時輸出的是父類中的方法,還是子類重寫了父類的方法

public class Mianshi {
	public static void main(String[] args) {
		Base1 base1=new sub1();
		base1.add(2, 2,1);
	}
}
class Base1{
	public void add(int a,int...arr) {//可變形參
		System.out.println("父類的方法");
	}
}
class sub1 extends Base1{
	public void add(int a,int[]arr) {
		System.out.println("子類一重寫父類的方法");
	}
}

輸出結果:

子類一重寫父類的方法

結果分析:

可變形參的值傳遞,與陣列型別,在Java中認為是一種相同的型別。所以父類的方法相當於被重寫了,於是輸出了子類的方法。

相關文章