今天,在群裡有人問(估計是新手)。答案,不一定。只有當子類重寫了父類的方法時,如果需要用到父類的方法時,才要用super,表明這個方法時父類的方法不是子類的方法。不理解?上**:
father類
public class father
public void printfonly(string str)
}
son類:
public class son extends father
public void test()
public static void main(string args)
}
執行結果:
什麼都不使用*****==>這是子類的方法
使用this*****==>這是子類的方法
使用super*****==>這是父類的方法
這是父類的方法,子類沒有重寫的方法====>子類沒重寫,就會呼叫父類的方法
str is **********=>子類變數
super.str is **********=>父類變數
子類沒有同名變數,就會去找父類的變數 **********=>父類變數,子類沒有同名變數
子類重寫printf方法,如果需要呼叫父類的方法就要加super,否則,預設呼叫子類的方法。對於變數也是一樣。
子類一定要實現父類的抽象方法?
using system using system.collections.generic using system.linq using system.text namespace 子抽象類是否一定要實現父抽象類的抽象方法 public abstract class element public ...
巨集一定要用大寫
被乙個巨集折騰了2次,才偶然發現問題。問題挺隱蔽的,也許是自己對bug出現後的表現,還不太敏感。以前認為巨集需要大寫,可能就是看著舒服,維護方便。經過這個bug後,增加了體會。巨集大寫可以降低除錯的難度,提高 的清晰度。最近維護的linux工程,為了出win版。中不可避免的用巨集隔開,或定義了一些在...
一定要用遞迴嗎?!
2017 02 14 今天看資料結構的時候,自己考慮了一下,如何用程式來實現這個函式。結果我的想法是利用迴圈的方式,而書上使用的方式是利用遞迴,所以就查了查這部分的內容,對比了下迴圈和遞迴的優缺點。首先,最重要的一點,就是這段函式的 盡量不使用遞迴。但是有時候,可能不使用遞迴,就會導致 量急劇上公升...