OC:继承



OC继承的特点:

@1.  继承是单向的,不能相互继承。

@2.  继承具有传递性:A继承于B,B继承于C,A具有B和C的特征和行为

@3.  OC中只允许单继承

@4.  继承的内容:所有实例变量和方法。

        @5.  OC中所有的方法(消息),默认都是公有的。

修饰符:   

private:    私有成员,不能被外部函数访问(使用),也不能被子类继承;

protected:保护成员,不能被外部函数访问,可以被子类继承;

public:      公有成员,可以被外部函数访问,也可以被子类继承。

           注: 默认的权限是 protected

继承的优缺点:

  优点

  @1.   提高代码的复用。

   @2.   扩展原有的类。

注意:NSString、NSArray、NSDictionary都是不能够继承的。

 

  缺点:

      @1.    破坏了封装性,基类向子类暴露了实现细节 ,白盒重用。 
      @2.    当父类的实现改变时可能要相应的对子类做出改变 
      @3.    不能在运行时改变由父类继承来的实现 


 因此:组合比继承具有更大的灵活性和更稳定的结构,一般情况下应该优先考虑组合.

OC的方法都是虚方法:

  1)父类的指针可以指向子类的对象

     Person *p = [[Student alloc] init];

  此时的p指向子类对象;调用方法时,不看指针,看对象,对象的地址指向什么对象,就调用什么方法,称为虚方法。

  2)虚方法的好处:可以描述不同事物被相同事件触发,会产生不同的响应。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值