Java三大特性
面向對象編程有三大特性:封裝、繼承、多態。
封裝隱藏了類的內部實現機制,可以在不影響使用的情況下改變類的內部結構,同時也保護了數據。對外界而已它的內部細節是隱藏的,暴露給外界的只是它的訪問方法。
繼承是為了重用父類代碼。兩個類若存在IS-A的關系就可以使用繼承。,同時繼承也為實現多態做了鋪墊。那么什么是多態呢?多態的實現機制又是什么?請看我一一為你揭開:
所謂多態就是指程序中定義的引用變量所指向的具體類型和通過該引用變量發出的方法調用在編程時并不確定,而是在程序運行期間才確定,即一個引用變量倒底會指向哪個類的實例對象,該引用變量發出的方法調用到底是哪個類中實現的方法,必須在由程序運行期間才能決定。因為在程序運行時才確定具體的類,這樣,不用修改源程序代碼,就可以讓引用變量綁定到各種不同的類實現上,從而導致該引用調用的具體方法隨之改變,即不修改程序代碼就可以改變程序運行時所綁定的具體代碼,讓程序可以選擇多個運行狀態,這就是多態性。
比如你是一個酒神,對酒情有獨鐘。某日回家發現桌上有幾個杯子里面都裝了白酒,從外面看我們是不可能知道這是些什么酒,只有喝了之后才能夠猜出來是何種酒。你一喝,這是劍南春、再喝這是五糧液、再喝這是酒鬼酒….在這里我們可以描述成如下:
酒 a = 劍南春
酒 b = 五糧液
酒 c = 酒鬼酒
…
這里所表現的的就是多態。劍南春、五糧液、酒鬼酒都是酒的子類,我們只是通過酒這一個父類就能夠引用不同的子類,這就是多態――我們只有在運行的時候才會知道引用變量所指向的具體實例對象。
誠然,要理解多態我們就必須要明白什么是“向上轉型”。在繼承中我們簡單介紹了向上轉型,這里就在 主站蜘蛛池模板: 庐江县| 贵州省| 施甸县| 若尔盖县| 庆安县| 宜阳县| 犍为县| 呼玛县| 宾阳县| 鄂尔多斯市| 遵义市| 庄浪县| 姜堰市| 获嘉县| 文昌市| 兴义市| 蕉岭县| 南澳县| 噶尔县| 锦屏县| 雅江县| 滕州市| 历史| 长海县| 肇州县| 黑水县| 光泽县| 富平县| 霍林郭勒市| 渭源县| 云林县| 寿阳县| 安达市| 罗源县| 郧西县| 酒泉市| 大同市| 天等县| 金堂县| 泰顺县| 卢氏县|