OC类的继承和多态

来源:互联网 发布:js鼠标点击触发事件 编辑:程序博客网 时间:2024/04/29 16:16

self

原理,本质是指针,谁调用了当前方法,self就指向谁(方法调用者)
  self做出现在对象方法中,self就指向对象
  self做出现在类方法中,self就指向类
1 ,可以利用“self->成员变量名”访问当前对象内部的成员变量
2, [self 方法名]可以调用其对象方法\类方法

继承

1,好处
  
(1),抽取重复代码
(2),建立了类之间的练习
(3),子类可以拥有父类所有的成员变量和方法

2,坏处:耦合性太强

3,注意点
(1),基本上所有类的根类都是NSObject
(2),不允许子类和父类拥有相同名称的成员变量
(3),重写:子类重新实现父类中的某个方法,覆盖父类以前的做法
(4),父类必须声明在子类的前面
(5),调用某个对象的方法时,优先去当前对象中找。如果找不到,去父类中找。

super
1,直接调用父类中的某个方法
2,super处在对象方法中,那么就会调用父类的对象方法
3,使用场合:子类重写父类的方法时想保留父类的一些行为


多态性

1,多态示例
Dog *d=[Dog new]; //Dog类型
多态:父类指针指向子类对象
Animal **a=[Dog new]; //Dog类型,Animal 和 Dog 不能换

2,调用方法时会动态检测对象的真实类型
[a eat];

3,多态的好处

一个函数参数设置为父类类型,可以传入多种类型。

4,多态的限制

父类类型的变量 不能用来调用子类的方法。可以用强制类型转换方法相同的方式转换类型。

0 0
原创粉丝点击