Objective-C 继承与类
创建: 2018/01/20
完成: 2018/01/21
更新: 2018/01/22 标题前增加 [Objective-C]
| 继承的概念 | |||||||||||||||||
| 父类与子类 |
●继承: 继承其他类 ●父类: 被继承的类 子类: 继承的类 ●子类: 可以增加方法与变量,改写已有父类方法 |
||||||||||||||||
|
继承关系 (Class hierarchy) |
不断继承,树结构一样 最顶端是根类 Cocoa环境下的根类是NSObject, 所有类都要继承它!(直接或间接) |
||||||||||||||||
| 使用继承的类定义 | |||||||||||||||||
| 继承关系的声明 |
|
||||||||||||||||
| 类声明与头文件 | 继承时,头文件必须包含被继承类的头文件 | ||||||||||||||||
| 继承与方法的呼出 |
当呼出函数(发送信息)时 ●先找当前类定义里有没有 ●再找父类里面有没有定义,没有就再往上找 |
||||||||||||||||
| 呼出重载前的父类的方法 |
[super 方法名]; |
||||||||||||||||
| 构造函数 |
|
||||||||||||||||
| 继承的例子 | |||||||||||||||||
| # TODO: Supply [补充例子, 46~49] | |||||||||||||||||
| 继承与呼出方法 | |||||||||||||||||
| self | 自己 | ||||||||||||||||
| super |
继承的父类(最靠近的一个) 用super来呼出方法是呼出父类的方法 |
||||||||||||||||
| # TODO: Supply [补充例子, 51~52] | |||||||||||||||||
| 定义方法时的注意 | |||||||||||||||||
| 内部方法 |
●不在@interface里声明,直接在@implementation里定义 ●外部看不懂相关信息,但是仍旧可以呼出该函数 ●被继承时候主要不要不小心重载了(建议在开头附上前缀) @interface Sample : NSObject {
|
||||||||||||||||
|
指定初始化函数 (Designated initializer) |
●可以单独(包含读取父类的指定初始化函数)完成初始化,不需要呼出本类内其他构造函数的函数 ●NSObject的指定初始化函数式init ●子类创设初始化函数时, 要呼出父类的指定构造函数(也就是主构造函数) |
||||||||||||||||
Objective-C 继承与类的更多相关文章
- 窥探Swift之类的继承与类的访问权限
上一篇博客<窥探Swift之别具一格的Struct和Class>的博客可谓是给Swift中的类开了个头.关于类的内容还有很多,今天就来搞一下类中的继承以及类的访问权限.说到类的继承,接触过 ...
- 继承Thread类
Thread类在包java.lang中,从这个类中实例化的对象代表线程,启动一个新线程需要建立Thread实例,Thread类中常用的两个构造方法如下: (1)public Thread(String ...
- C++中虚继承派生类构造函数的正确写法
最近工作中某个软件功能出现了退化,追查下来发现是一个类的成员变量没有被正确的初始化.这个问题与C++存在虚继承的情况下派生类构造函数的写法有关.在此说明一下错误发生的原因,希望对更多的人有帮助. 我们 ...
- C#中是否可以继承String类
C#中是否可以继承String类? 答:String类是sealed类故不可以继承. 当对一个类应用 sealed 修饰符时,此修饰符会阻止其他类从该类继承. 在下面的示例中,类 HoverTree ...
- Java中继承thread类与实现Runnable接口的区别
Java中线程的创建有两种方式: 1. 通过继承Thread类,重写Thread的run()方法,将线程运行的逻辑放在其中 2. 通过实现Runnable接口,实例化Thread类 在实际应用中, ...
- Java通过继承thread类与实现Runnable接口实现多线程的区别
Java中线程的创建有两种方式: 1. 通过继承Thread类,重写Thread的run()方法,将线程运行的逻辑放在其中 2. 通过实现Runnable接口,实例化Thread类 一.通过继承T ...
- Java中是否可以继承String类,为什么
Java中,是否可以继承String类?为什么? 答案: 不可以,因为String类有final修饰符,而final修饰的类是不能被继承的,实现细节不允许改变. public final class ...
- [Effective JavaScript 笔记]第40条:避免继承标准类
ECMAScript标准库里配备了许多重要的类,如Array,function,以及Date等.扩展这些类生成子类可以方便完成很多工作,但它们的定义具有很多特殊的行为,所以很难写出行为正确的类. Ar ...
- 是否可以继承String类?
是否可以继承String类? String类是final类故不可以继承
- 接口是否可继承接口? 抽像类是否可实现(implements)接口? 抽像类是否可继承实体类(concrete class)?
接口是否可继承接口? 抽像类是否可实现(implements)接口? 抽像类是否可继承实体类(concrete class)? 1. 接口可以继承接口. 2. 抽像类可以实现(implements)接 ...
随机推荐
- 关于Filter中ServletRequest和ServletResponse强转HttpServletRequest和HttpServletResponse
---转载自:https://www.cnblogs.com/mei0619/p/8341159.html request对象的生成方式不是ServletRequest request = new S ...
- 全文搜索(A-5)-推荐算法
基于内容的推荐算法: 协同过滤推荐算法: 混合推荐算法: 基于内容的推荐算法做了如下假设:用户会喜欢和原来喜欢的物品相类似的项目.
- 营救(洛谷 P1396)
题目描述 “咚咚咚……”“查水表!”原来是查水表来了,现在哪里找这么热心上门的查表员啊!小明感动的热泪盈眶,开起了门…… 妈妈下班回家,街坊邻居说小明被一群陌生人强行押上了警车!妈妈丰富的经验告诉她小 ...
- [NOIP2007] 提高组 洛谷P1097 统计数字
题目描述 某次科研调查时得到了n个自然数,每个数均不超过1500000000(1.5*10^9).已知不相同的数不超过10000个,现在需要统计这些自然数各自出现的次数,并按照自然数从小到大的顺序输出 ...
- Linux下汇编语言学习笔记64 ---
这是17年暑假学习Linux汇编语言的笔记记录,参考书目为清华大学出版社 Jeff Duntemann著 梁晓辉译<汇编语言基于Linux环境>的书,喜欢看原版书的同学可以看<Ass ...
- python之练习-三层菜单
今天练习编写显示3层城市名称并可以返回上一层以及退出程序. Readme: 程序概述1:程序名称为:menu_three.py2:记录省,市,县的原始文件名为:areafile3:areafile文件 ...
- 51nod 1298 圆与三角形 (计算几何)
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1298 求出圆心到三条线段的最短距离,然后判断是否有顶点在圆外,就把全部情 ...
- codeforces 691E(矩阵乘法)
E. Xor-sequences time limit per test 3 seconds memory limit per test 256 megabytes input standard in ...
- 51Nod——T 1686 第K大区间
https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1686 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 ...
- linux复制文件/移动文件从一个文件夹到另一个文件夹
cp ~/baidu/* ~/zhidao/cp -r逐层复制mv /data/link /usr/local 移动文件夹 解决方法 1.在cp命令后,加一个选项 -r . cp -r /TEST/ ...