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)接 ...
随机推荐
- 集训第五周 动态规划 B题LIS
Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit Status Des ...
- Leetcode 207.课程表
课程表 现在你总共有 n 门课需要选,记为 0 到 n-1. 在选修某些课程之前需要一些先修课程. 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们: [0,1] 给定课程总 ...
- [luoguP2672] 推销员(贪心 + 树状数组 + 优先队列)
传送门 贪心...蒟蒻证明不会... 每一次找最大的即可,找出一次最大的,数列会分为左右两边,左边用stl优先队列维护,右边用树状数组维护.. (线段树超时了....) 代码 #include < ...
- 「CodePlus 2017 11 月赛」Yazid 的新生舞会
n<=500000的数字,问有多少个区间的众数出现次数严格大于区间长度的一半. 这么说来一个区间就一个众数了,所以第一反应是枚举数字,对下标进行处理.然后没有第二反应.很好. 在枚举一个数字的时 ...
- POJ 2456_Aggressive cows
题意: 给定N个位置,把C头牛分别放入,求相邻两头牛的最大距离. 分析: 即为求两头牛之间最小距离的最大值.二分搜索答案. 代码: #include<iostream> #include& ...
- js格式化日期时间
// 对Date的扩展,将 Date 转化为指定格式的String // 月(M).日(d).周(E).小时(h).分(m).秒(s).季度(q) 可以用 1-2 个占位符, // 年(y)可以用 1 ...
- Caocao's Bridges-HDU4738(Tarjin+求桥)
http://acm.hdu.edu.cn/showproblem.php?pid=4738 题目大意: 给定n个点和m条边 和每条边的价值,求桥的最小价值(最小桥) 看着挺简单的但是有好多细节: ...
- Word Search(深度搜索DFS,参考)
Given a 2D board and a word, find if the word exists in the grid. The word can be constructed from l ...
- Ubuntu 16.04使用百度云的方案
Ubuntu没有很好的解决方案,都是一些投机取巧的方案: 1.不建议安装百度云客户端,尤其对于免费用户来说,会限制速度. 2.可以使用网页版进行文件上传. 3.下载可以通过Chrome点击下载后,复制 ...
- Ubuntu 16.04重启输入法
一般使用搜狗输入法,但是偶尔不太稳定会挂掉,但是可以通过以下脚本重启: pidof fcitx | xargs kill pidof sogou-qimpanel | xargs kill nohup ...