OC_继承,便利构造器,初始化方法

继承

1.继承:子类会继承父类所有的特征还有行为
2.对象在执行方法的时候,子类重写了父类的方法,系统会优先选择使用子类的方法,如果没有重写则使用父类的方法
3.继承是单向的,一个类只能有一个父类,但是一个类可以有无数个子类
4.NSObject是所有类的父类,也可以成为基类
5.类的继承是有传递性的
6.继承就是在工程创建两个类,再创建第二个类的时候在选择类型的时候不选择NSObject而是选择要继承的类,这样第二个就成功继承了第一个类的特征既行为,在子类中可直接进行进行调用    
7.子类只需要写自己的特有的特征就可以,其余的特征都会继承
8.对于子类的初始化方法时,先调用一下父类的初始化方法,对父类继承过来的成员变量进行设置  如:
-(id)initWithBlood:(NSInteger)blood
           atttack:(NSInteger)attack
             speed:(CGFloat)speed
{
self=[super init ] ;
    if (self) {
        _speed=speed;
        _attack=attack;
        _blood=blood;
    }
    return self;
}

便利构造器

1.便利构造器把创建的对象的对象的过程反倒了程序的.m文件中,这样通过类直接就能创建出一个对象出来
2.系统提供了很多的便利构造器的方法
3.便利构造器是加号方法(类方法)以类名作为开头
4.用Zombie *和id都是可以的  主要是看你定义的什么类名
5.声明部分:
+(Zombie *)zombieWithBlood:(NSInteger)blood
                    attack:(NSInteger)attack
                     speed:(CGFloat)speed;
6.实现部分:
+(Zombie *)zombieWithBlood:(NSInteger)blood
                    attack:(NSInteger)attack
                     speed:(CGFloat)speed
 {
       Zombie *zombie=[Zombie alloc]initWithBlood:blood 
                                           attack:attack 
                                            speed:speed];
          return zombie;
 }
  7.调用部分:
  Zombie *zom=[Zombie zombieWithBlood:100 attack:20 
               speed:10];//创建Zombie的对象zom并对其进行初始化
  [zom attack];//调用类的方法                   

自定义的初始化方法

   1.当这个对象在初始化过程中出现问题会返回一个空指针,如果是空指针接下来的赋值就没有意义了,跳过去,如果返回是一个正常的对空间的地址,才能继续赋值.
   2.方法必须以init作为开头,后面跟一个with,w必须大写
   3.声明部分:
   -(id)initWithStuName:(NSString *)stuName
                 stuAge:(NSInteger)stuAge
               stuHonny:(NSString *)stuHonny;
   4.实现部分:
    -(id)initWithStuName:(NSString *)stuName
                  stuAge:(NSInteger)stuAge
                stuHonny:(NSString *)stuHonny
   {
      self=[super self];
      if (self)
      {
        self.stuName=stuName;
        self.stuAge=stuAge;
        self.stuHonny=stuHobby;
      }
      return self;
   }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值