1. 程式人生 > >子類物件呼叫父類方法包含子類覆蓋的方法

子類物件呼叫父類方法包含子類覆蓋的方法

求最大公約數和最小公倍數
如果A類中的fa和B類中的fb命名相同,均為f,則在B類物件呼叫f方法時,會出現邏輯錯誤,因為呼叫super.f(a,b)後,父類方法中return f(a,b%a);呼叫的將不是父類中自身的方法,而是子類中被覆蓋的方法。

子類型別物件呼叫子類覆蓋父類的方法,預設使用子類的方法;使用super,可呼叫父類被覆蓋的方法,若父類的方法中有被子類覆蓋的方法,則該方法的邏輯為子類方法的邏輯;

個人建議:如無特別情況,絕不要覆蓋父類的遞迴方法同時呼叫父類的遞迴方法,以下B類物件的f方法呼叫時,不能得到正確的結果;
B類f方法出現錯誤邏輯