public?class?Demo1?{
???public?static?void?main(String[]?args)?{
??????Fu?f1?=?new?Fu();
??????f1.show("aa");//編譯通過
??????System.out.println("----------");
??????Fu?f2?=?new?Zi();
??????f2.show("aa");//編譯通過
??????System.out.println("----------");
??????Zi?z?=?new?Zi();
//????z.show("aa");//編譯失敗
???}
}
class?Fu?{
???public?void?show(String...args)?{
??????System.out.println("Fu.show()運行了");
???}
}
class?Zi?extends?Fu?{
???@Override
???public?void?show(String[]?args)?{
??????System.out.println("Zi.show()運行了");
???}
}就是上面這一段,父類有個帶可變參數的方法,子類繼承并重寫該方法,但是子類參數改為數組按說多態Fu?f2?=?new?Zi();
f2.show("aa");編譯看左邊,運行看右邊才對,為什么運行時不會出錯,而且確實執行了子類的show方法?
添加回答
舉報
0/150
提交
取消