Objective-C 程序设计 第八章
2015-11-03 11:46
218 查看
继承
就是父类和子类。根类和子类。
父类的非私有实例变量和方法都会成为新类定义的一部分。
在子类中使用父类的实例变量,父类必须先在接口部分声明。
父类在实现部分声明和合成的实例变量是私有的,子类中并不能直接访问。
需要明确定义或合成取值方法,才能访问实例变量的值。
也就是在接口部分声明的变量/方法是公开的。
类的每个实例都拥有自己的实例变量,即使这些实例变量是继承来的。
查找方法
先找子类,再找父类,找到为止。如无法找到,则报错无法相应这个方法。
继承通常用于扩展一个类。
扩展自己或他人以前实现的类,使它适合自己的需要。
分类:允许你以模块的方式向现有类定义添加新的方法。
@class 指令
如果使用一个类,却不需要了解这个类的实现(使用它的方法、实例变量),可以用@class 声明这个类,不用import
只是告诉编译器,这是一个类。
实例基本是指针,所以在生成,拷贝,返回时,注意其是已有的指针,还是新生成的实例变量。
不要直接返回子类变量的指针,容易被修改。想修改可以通过添加取值方法,创建一个对象的副本,并返回副本的对象。
覆写方法
不能通过继承删除或减少方法,但是可以通过覆写来更改继承方法的定义。
只要定义一个同名的方法,使用和父类相同的名称定义的方法代替或覆写了继承的定义。
新方法必须具有相同的返回类型,并且参数的树木与覆写的方法相同。
好像可以在父类中使用子类的方法?不过不建议这么做。
为什么创建子类?
1. 希望继承一个类的函数,也许加入一些新的方法和/或实例变量。
2. 希望创建一个类的特别的版本。
3. 希望通过覆写一个或多个方法来改变类的默认行为。
抽象类
有时候创建类只是为了更容易创建子类。这些类可以成为抽象类或抽象超类。
可以定义任何方法和实例变量,但不期望任何人从这个类创建实例。
就是父类和子类。根类和子类。
父类的非私有实例变量和方法都会成为新类定义的一部分。
在子类中使用父类的实例变量,父类必须先在接口部分声明。
父类在实现部分声明和合成的实例变量是私有的,子类中并不能直接访问。
需要明确定义或合成取值方法,才能访问实例变量的值。
也就是在接口部分声明的变量/方法是公开的。
类的每个实例都拥有自己的实例变量,即使这些实例变量是继承来的。
查找方法
先找子类,再找父类,找到为止。如无法找到,则报错无法相应这个方法。
继承通常用于扩展一个类。
扩展自己或他人以前实现的类,使它适合自己的需要。
分类:允许你以模块的方式向现有类定义添加新的方法。
@class 指令
如果使用一个类,却不需要了解这个类的实现(使用它的方法、实例变量),可以用@class 声明这个类,不用import
只是告诉编译器,这是一个类。
实例基本是指针,所以在生成,拷贝,返回时,注意其是已有的指针,还是新生成的实例变量。
不要直接返回子类变量的指针,容易被修改。想修改可以通过添加取值方法,创建一个对象的副本,并返回副本的对象。
覆写方法
不能通过继承删除或减少方法,但是可以通过覆写来更改继承方法的定义。
只要定义一个同名的方法,使用和父类相同的名称定义的方法代替或覆写了继承的定义。
新方法必须具有相同的返回类型,并且参数的树木与覆写的方法相同。
好像可以在父类中使用子类的方法?不过不建议这么做。
为什么创建子类?
1. 希望继承一个类的函数,也许加入一些新的方法和/或实例变量。
2. 希望创建一个类的特别的版本。
3. 希望通过覆写一个或多个方法来改变类的默认行为。
抽象类
有时候创建类只是为了更容易创建子类。这些类可以成为抽象类或抽象超类。
可以定义任何方法和实例变量,但不期望任何人从这个类创建实例。
相关文章推荐
- ios-iPhone Objective-C EXC_BAD_ACCESS问题
- Does GATHER_STATS_JOB gather all objects’ stats every time?
- sqlserver system object type
- ios 关联对象运用 objc_setAssociatedObject
- Objective-C中的@property和@synthesize用法
- JSONObject文档
- NSMutableAttributedStrings - objectAtIndex:effectiveRange:: Out of bounds错误解决
- id、NSObject *、id<NSObject>、instancetype
- Objective-C之@类别小实例
- PO模式(Page Object Model)
- PHP、JAVA、C#、Object-C 通用的DES加密
- iPhone开发中,在XCode下混合编译 C++/Objective-C
- Objective C(OC)面向对象三大特性之:封装
- Objective -C学习笔记 之copy(复制)
- Objective-C函数指针
- 建议采用的顺序是 List<T>、List<?>、List<Object>
- Objective-C:copy的用法解释
- (OC)基础第二讲:实例变量可见度、方法
- 论文笔记:Rich feature hierarchies for accurate object detection and semantic segmentation
- JavaScript中in操作符(for..in)、Object.keys()和Object.getOwnPropertyNames()的区别