OC__part11.3
繼承
B類繼承A類,那么B類將擁有A類所有屬性和方法;
基類的私有屬性能被繼承,不能再子類中訪問;
要訪問,就要在基類中聲明一個方法,來訪問;
不涉及繼承@protect就是@private; @protect?
基類的屬性如果是
public 修飾的,那么可以在派生類中可以直接使用,在使用派生類對象->屬性 =3 ,也是可以的;
private修飾的,那么派生類方法是不可以使用的,只能通過方法來使用;使用派生類->屬性 ?也是error的
protect修飾的,那么派生類的方法是可以直接使用的,使用派生類對象->屬性 是error的;
OC的繼承是單繼承,不能繼承多個類;
子類和父類的關(guān)系也成為isa的關(guān)系;
方法重寫
如果方法重寫了,則調(diào)用的是子類的方法;
如果子類中沒有改方法,則調(diào)用基類的方法;
[self ?setAge];//在子類中調(diào)用本類的方法;
[super ?setAge];//在子類中調(diào)用被子類重寫的父類的方法;
子類中不能定義父類所擁有的成員變量;
Super關(guān)鍵字
作用:
1.調(diào)用父類當(dāng)中的某個方法;
2.super在對象方法中,那么會調(diào)用父類的對象方法;super在類方法中,那么會調(diào)用父類的類方法;
多態(tài)
多態(tài)就是某一類事物的多種形態(tài);
程序中:父類指針指向子類對象;
條件:
1.有繼承關(guān)系
2.子類重寫父類方法
3.用父類的指針指向子類的對象
動物 *a =[貓 new];
用父類的指針來指向子類,執(zhí)行方法,其實就是執(zhí)行子類的那個方法。
Animal *pa =[Animal new];
[pa call];//調(diào)用的Animal的方法
Dog *pb =[Dog new];
[pb call]//調(diào)用Dog的方法
Animal *pc = [Dog new];
[pc call];//調(diào)用Dog的方法
不涉及繼承@protect就是@private; @protect?
總結(jié)
以上是生活随笔為你收集整理的OC__part11.3的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OC__part11.2
- 下一篇: 绝对精华,大牛教你在Android系统上