博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OC基础第三讲
阅读量:7249 次
发布时间:2019-06-29

本文共 1300 字,大约阅读时间需要 4 分钟。

继承、初始化方法

继承

1.基本概念

继承的上层—父类, 继承的下层—子类, 子类继承父类全部的特征和行为。

根类(NSObject): 没有父类的类

继承是单向的,不能相互继承,且OC中只允许单继承

继承具有传递性

2.Super

super是编译器指令,并非对象,而self是指针(即对象)

作用:调用从父类继承的实例方法

子类可以重写父类的方法(这个方法无需在子类中重复声明),当子类重写父类的方法后,子类会调用自己重写后的方法,如果要调用父类的方法,则需要给super发消息[super 方法名]。

 

初始化方法

 

创建对象步骤:分配空间 -> 初始化(为新开辟的空间赋值)

 完整的初始化方法(3步):

 子类中定义了除父类中公共实例变量之外的实例变量。在自身的初始化方法中,先向super发送init消息,初始化公共实例变量,初始化成功后,在初始化自身特有变量,从而完成全部实例变量的初始化。

//  声明自定义初始化方法( 3个参数)(指定初始化方法)

-(id)initWithNo:(int)no withName:(NSString *)name withAge:(int)age

{

    //  优先调用从父类继承过来的初始化方法

    self = [super initWithName:name withAge:0];

    //  判断初始化是否成功,如果初始化成功,在初始化自身持有的实例变量

    if (self) {

        _no = no;

    }

    //  返回对象

    return self;

}

初始化方法特征:’-’方法(实例方法);返回值是(id)或者(instancetype);init开头;可以带0~多个参数。内部实现:先执行super的始化方法,再初始化自身变量,最后返回对象 return self.

指定初始化方法:一个类含有多个初始化方法,无论执行哪个初始化方法,总有一个初始化方法被调用,这个方法就是初始化方法。一般选参数最全的初始化方法作为指定初始化方法

//  使用实例方法创建学生类对象

Student *pStu = [[Student alloc] initWithName:@"小王" withAge:18 withNo:28

便利构造器

便利构造器是’+’方法(类方法),方法名以类名开头,返回本类型的实例

内部实例:封装了alloc(开辟空间)和初始化方法(init)

//  实现方法

+(id)personWithName:(NSString *)name withAge:(int)age

{

    Person *p = [[Person alloc] initWithName:name withAge:age];

    return p;

}

//  使用便利构造器创建对象

Person *p = [Person personWithName:@"小王" withAge:66];

 

posted on
2014-04-25 21:24 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/liuyu521/p/3690175.html

你可能感兴趣的文章
Linux下文件和目录的颜色代表的含义
查看>>
Forefront Client Security服务器部署
查看>>
Crystal Reports中的字段
查看>>
一个例子探究jQuery的Ajax应用(二)
查看>>
PPT of "SharePoint 2007 网站性能优化"
查看>>
爪哇国新游记之三十四----Dom4j的XPath操作
查看>>
node17
查看>>
Java程序性能优化4
查看>>
第一次负责项目总结
查看>>
Azure Redis Cache (2) 创建和使用Azure Redis Cache
查看>>
python统计ES存储空间占用的代码
查看>>
成就连自己都惊讶的未来
查看>>
依赖倒置(DIP)与依赖注入(DI)
查看>>
mysql数据库授权
查看>>
Microstation
查看>>
深入浅出的英语口语700句zz
查看>>
linux编译安装php
查看>>
再谈奶牛问题
查看>>
第一个java程序------hello world!
查看>>
C#学习安排表
查看>>