2 回答

TA貢獻217條經(jīng)驗 獲得超353個贊
不用java的這些面象對象的特性,采用過程式開發(fā)一個項目,完全可以。問題是。。。非常麻煩。
所學的這些東西都是工具,等到你真的工作的時候就會慢慢體會到,如果不用這些特性,越龐大的項目越難維護。
============================
建議還是找一些小的項目(比如別人寫的一個小游戲demo)然后觀察代碼中哪里用了封裝、哪里用了多態(tài)、哪里用了接口。如果不用的話自己去寫是什么樣子的,能實現(xiàn)嗎?能的話比這個麻煩還是比這個簡單?多動腦思考多敲代碼才會慢慢體會得到。
============================
既然你已經(jīng)初步掌握了這幾個特性,那么我出幾個題考考你吧。
問題:print是一個方法,那么如下,同一個方法,參數(shù)不同(一個字符串,一個整型)都可以打印內(nèi)容,這是為什么?用了java的什么特性?
System.out.print("ABC");
System.out.print(123);
===================================
以上用了java的靜態(tài)多態(tài)性(方法的重載為靜態(tài)多態(tài),方法的重寫為動態(tài)多態(tài)[即,運行時才能看知道執(zhí)行的結果]多發(fā)生于子類與父類之間)。
換句話說,這就是兩個同名的不同的方法。(如果打開java源碼可以看到)。好處很顯然,你只要關心要打印什么,具體打印是什么類型不用關心。
我想,如果換做是你要實現(xiàn)這個功能,可能會命名完全不同的兩個方法吧。比如:
System.out.printString("ABC");
System.out.printInt(123);
System.out.printBoolean(false);
……
這樣不用java多態(tài)性的重載方式解決問題,每一個都要去記打印類型對應的方法名,多麻煩。
=======================================
PS:加油哈,good luck!
添加回答
舉報