什么是多態(tài)?
多態(tài)就是某一類事物的多種形態(tài)
程序中的多態(tài):父類指針指向子類對象
多態(tài)的條件
1.有繼承關(guān)系
2.子類重寫父類方法
3.父類指針指向子類對象
4.表現(xiàn):當(dāng)父類指針指向不同的對象的時(shí)候,通過父類指針調(diào)用被重寫的方法的時(shí)候约炎,會(huì)執(zhí)行該指針?biāo)赶虻哪莻€(gè)對象的方法
多態(tài)的優(yōu)點(diǎn)
1.多態(tài)的主要好處就是簡化了編程接口啡浊。它允許在類和類之間重用一些習(xí)慣性的命名,而不用 為每一個(gè)新加的函數(shù)命名一個(gè)新名字览爵。這樣,編程接口就是一些抽象的行為的集合,從而和實(shí)現(xiàn)接口的類的區(qū)分開來魂贬。
2.多態(tài)也使得代碼可以分散在不同的對象中而不用試圖在一個(gè)函數(shù)中考慮到所有可能的對象初狰。 這樣使得您的代碼擴(kuò)展性和復(fù)用性更好一些榔至。當(dāng)一個(gè)新的情景出現(xiàn)時(shí),您無須對現(xiàn)有的代碼進(jìn)行 改動(dòng),而只需要增加一個(gè)新的類和新的同名方法。
多態(tài)的原理
動(dòng)態(tài)綁定:
動(dòng)態(tài)類型能使程序直到執(zhí)行時(shí)才確定對象的真實(shí)類型
動(dòng)態(tài)類型綁定能使程序直到執(zhí)行時(shí)才確定要對那個(gè)對象調(diào)用的方法
OC不同于傳統(tǒng)程序設(shè)計(jì)語言,它可以在運(yùn)行時(shí)加入新的數(shù)據(jù)類型和新的程序模塊:動(dòng)態(tài)類型識別,動(dòng)態(tài)綁定,動(dòng)態(tài)加載
id類型:通用對象指針類型,弱類型,編譯時(shí)不進(jìn)行具體類型檢查
多態(tài)的注意點(diǎn)
1)如果存在多態(tài),父類是可以訪問子類特有的方法
2)如果不存在多態(tài),父類是不可以訪問子類特有的方法的