2011年8月1日 星期一

物件導向軟體設計﹣Class , Abstration Method , Interface




在 Java 之中我們喜歡將東西分門別類,例如:多顆籃球的程式,我們會把籃球的大小、重量、材質寫在一起,這樣就如同工廠的生產線一般,生產線運作一次就能產生一顆籃球,所以我們只要呼叫一次程式碼,就能產生一顆籃球,而這個方法我們稱為 Class。


如果我們想產生籃球、躲避球、足球呢?我們豈不是要一個一個寫了? 沒錯!我們的確要一個一個寫,但是我們能以比較省時省力的方式撰寫,請你仔細觀察這幾種球,他們是不是有些相同的地方呢?例如:他們都是圓形、有彈力的,這些相似的地方,我們將這些相似的地方抽出來,用類別的方式寫在一起,但是他們的彈力都不相同阿!因而我們將彈力的部份空下來(Abstract method),當我們去撰寫籃球、躲避球、足球時,再把這個空下來的部份補上,而這種類別我們稱為 Abstraction class。

最後我們想為了每一種球都必須擁有某些行為,如:每種球都能滾動、都會彈跳等,此時我們可以將這些必須擁有的行為先行宣告,而我們在這之中不需要實做這些行為的內容,而是交給未來將使用的類別去實做,如此我們稱這些預測為 Interface。

是不是有發現有些不太對勁的地方呢?我們在 Class 中繼承父類別並使用父類別已經定義過的方法,我們稱為正向呼叫,而剛剛在 Interface 裡面所說的行為,都還沒有誕生,但我們的 Interface 會預測到這些行為將會誕生,因而先行呼叫,此種方法稱為反向呼叫。

Copyright ©  2008-2012 www.notonly.com.tw. All Rights Reserved.
張貼留言