您的位置:首页 > 其它

OC之继承,初始化方法

2014-08-05 22:04 218 查看
继承:当多个类出现部分相同的实例变量和方法时,就要考虑用继承.

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

继承的上层:父类 继承的下层:子类

继承是单向的,不能相互继承.

继承具有传递性: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开头,拼接上多个参数
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: