OC学习(三)继承和方法

继承是OC面向对象编程的三大特性之一

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

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

       子类继承父类:子类会将父类中除了声明为 @private 的实例变量以及私有方法之外的内容直接继承,

当子类和父类有同样的内容时,可以将这些相同的内容从子类中删除.另外,子类从父类继承过来的实例

变量和方法,就属于子类所有(也就相当于将父类的内容复制一份放在子类中).

       私有方法:在.m文件中实现了,但是没有在.h文件中声明的方法,叫做私有方法.私有方法不允许在外部

访问,只能在本类中访问.

       从父类继承过来的方法,子类又实现了一次该方法,称为重写父类方法.

       继承父类方法时会存在三种情况:

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

2.按子类重写之后的方法来实现(完全重写该方法)

3.一个方法既有父类对该方法的实现,也有子类对该方法的实现.(在原方法的基础上修改该方法)

       自定义初始化方法:

对于自己写的类,我们一般都会自己写一个自定义的初始化方法,在创建对象时,使用该方法进行初始化,这里

以一个Person类为例,代码实现如下

- (id)initWithName:(NSString *)name gender:(NSString *)gender age:(NSInteger)age
{
    self = [super init];
    if (self) {
        _name = name;
        _gender = gender;
        _age = age;
    }
    return self;
}</span>
初始化方法是对对象进行初始化,因此是一个减号方法.

初始化完成返回该对象,因此返回值类型为 id 类型.

初始化方法的方法名一般以 init 开头,然后 + With + 对参数的描述

        便利构造器方法:

便利构造器,顾名思义,就是方便我们创建对象时使用的.在方法内部为我们实现了开辟空间的过程,仍然

以Person为例,代码如下

+ (id)personWithName:(NSString *)name gender:(NSString *)gender age:(NSInteger)age
{
    return [[Person alloc] initWithName:name gender:gender age:age];
}</span>
便利构造器用于类创建对象,使用对象是类,因此是一个加号方法.

内部通过开辟空间,然后调用已经写过的自定义的初始化方法,完成对象的创建,最后返回对象.

















發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章