OC:继承

来源:互联网 发布:拼图游戏制作软件 编辑:程序博客网 时间:2024/06/05 04:15


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)虚方法的好处:可以描述不同事物被相同事件触发,会产生不同的响应。

0 0
原创粉丝点击