OC之继承,初始化方法

继承:当多个类出现部分相同的实例变量和方法时,就要考虑用继承.

继承的使用:将多个类中相同的实例变量的方法提出来写成一个公共的父类.


继承的上层:父类  继承的下层:子类
继承是单向的,不能相互继承.
继承具有传递性:A继承于B, B继承于C, A具有B和C的特征和行为.
子类可直接拥有父类中除了声明为@pivate的实例变量之外的全部内容.

植物大战僵尸:普通僵尸,路障僵尸,铁桶僵尸.
共同点:存在部分相同的特征和行为
 
面向对象提供了继承语法,能大大简化代码.把公共的方法和实例变量写在父类里,子类只需要写自己独有的实例变量和方法即可.

继承既能保证类的完整,又能简化代码.


子类继承父类:会将父类中除了声明为@private的实例变量以及私有方法(.h文件中没有声明,但在.m文件中实现)之外,其余内容都会被继承,所以如果子类中有和父类同样的内容,可以全部删除.

私有方法:.m文件中实现,但是没有在.h文件中声明的方法,叫做私有方法,私有方法不允许在外部访问,但是可以再本类中访问.




OC中只允许单继承.
被继承的类为父类(super class), 也称为超类,
继承的类称为子类(sub class).


方法重写(重新实现)

继承时的方法会存在三中情况:

1.保留父类对该方法的实现,(实现方式,不重写方法)

2.按子类重写之后的方式来实现.(实现方式,重写该方法,写自己的实现体,完成忽视父类的实现)

3.对于该方法既有父类对该方法的实现,也有子类对该方法的实现.



[self eat]; 使用 self 来调用自己的方法 .[super eat] super的作用: 用来调用父类方法的实现 .

初始化时 , 本类只对自己独有的实例变量赋值即可 .

//初始化时,本类只对自己独有的实例变量赋值即可.    

//super 调用父类对该初始化方法的实现,为从父类继承过来的实例变量赋值.    

self = [super initWithName:name gender:gender age:age];    

if (self != nil) { //为自己独有的实例变量赋值        

_number = number;        

_score = score;    

}    

return self;


便利构造器作用:快速创建对象,内部封装了创建对象的过程.

格式:1.+ 号方法 2.返回值类型为id类型3.以类名+With开头,拼接上多个参数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值