OC__part11.3

来源:互联网 发布:java 连续登录天数 编辑:程序博客网 时间:2024/05/21 06:50

继承



B类继承A类,那么B类将拥有A类所有属性和方法;


基类的私有属性能被继承,不能再子类中访问;


要访问,就要在基类中声明一个方法,来访问;


#import "Base":NSObject@interface subClass :Base//继承于Base{}@end@implementation subClass-(void)sayAge{[self setAge:3];//用基类的方法来访问,基类的私有属性}@end



不涉及继承@protect就是@private; @protect 


基类的属性如果是

public 修饰的,那么可以在派生类中可以直接使用,在使用派生类对象->属性 =3 ,也是可以的;

private修饰的,那么派生类方法是不可以使用的,只能通过方法来使用;使用派生类->属性  也是error的

protect修饰的,那么派生类的方法是可以直接使用的,使用派生类对象->属性 是error的;


OC的继承是单继承,不能继承多个类;


子类和父类的关系也成为isa的关系;



方法重写


如果方法重写了,则调用的是子类的方法;

如果子类中没有改方法,则调用基类的方法;


[self  setAge];//在子类中调用本类的方法;

[super  setAge];//在子类中调用被子类重写的父类的方法;


子类中不能定义父类所拥有的成员变量;


Super关键字


作用:

1.调用父类当中的某个方法;

2.super在对象方法中,那么会调用父类的对象方法;super在类方法中,那么会调用父类的类方法;



多态


多态就是某一类事物的多种形态;


程序中:父类指针指向子类对象;


条件:

1.有继承关系

2.子类重写父类方法

3.用父类的指针指向子类的对象

动物 *a =[猫 new];


用父类的指针来指向子类,执行方法,其实就是执行子类的那个方法。


Animal *pa =[Animal new];

[pa call];//调用的Animal的方法

Dog *pb =[Dog new];

[pb call]//调用Dog的方法


Animal *pc = [Dog new];

[pc call];//调用Dog的方法











不涉及继承@protect就是@private; @protect 


0 0
原创粉丝点击