(1)面向?qū)ο蟪绦?/strong>設(shè)計(jì)有三大特征:封裝(Encapsulation)、繼承(Inheritance)、多態(tài)(Polymorphism)。這三個(gè)單詞很常見,大家還是記住為好!
(2)封裝(Encapsulation):類包含了數(shù)據(jù)和方法,將數(shù)據(jù)和方法放在一個(gè)類中就構(gòu)成了封裝。
(3)繼承(Inheritance):Java是單繼承的(這點(diǎn)和C++有區(qū)別),意味著一個(gè)類只能繼承于一個(gè)類,被繼承的類叫父類(或者叫基類,baseclass),繼承的類叫子類。Java中的繼承使用關(guān)鍵字extends。但是,一個(gè)類可以實(shí)現(xiàn)多個(gè)接口,多個(gè)接口之間用逗號(hào)進(jìn)行分割。實(shí)現(xiàn)接口使用關(guān)鍵字implements。
(4)多態(tài)(Polymorphism):多態(tài)最核心的思想就是,父類的引用可以指向子類的對(duì)象,或者接口類型的引用可以指向?qū)崿F(xiàn)該接口的類的實(shí)例。多態(tài)之所以是這樣的是因?yàn)榛谝粋€(gè)事實(shí):子類就是父類!
(5)關(guān)于多態(tài)的一些重要說明:
當(dāng)使用多態(tài)方式調(diào)用方法時(shí),首先檢查父類中是否有此方法,如果沒有則編譯錯(cuò)誤,如果有則再去調(diào)用子類重寫(Override)【如果重寫的話】的此方法,沒有重寫的話,還是調(diào)用從父類繼承過來的方法。
兩種類型的強(qiáng)制類型轉(zhuǎn)換:
向上類型轉(zhuǎn)換(upcast):將子類型引用轉(zhuǎn)換成父類型引用。對(duì)于向上類型轉(zhuǎn)換不需要顯示指定。
向下類型轉(zhuǎn)換(downcast):將父類型引用轉(zhuǎn)換成子類型引用。對(duì)于向下類型轉(zhuǎn)換,必須要顯示指定。向下類型轉(zhuǎn)換的原則:父類型引用指向誰才能轉(zhuǎn)換成誰。
多態(tài)是一種運(yùn)行期的行為,不是編譯期行為!在編譯期間它只知道是一個(gè)引用,只有到了執(zhí)行期,引用才知道指向的是誰。這就是所謂的“軟綁定”。
多態(tài)是一項(xiàng)讓程序員“將改變的事物和未改變的事物分離開來”重要技術(shù)。
以上內(nèi)容為大家介紹了python面向?qū)ο?OOP)的三大特征,希望對(duì)大家有所幫助,如果想要了解更多Python相關(guān)知識(shí),請關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。