您的位置:首页 > 移动开发 > Objective-C

Objective-C 程序设计 第八章

2015-11-03 11:46 218 查看
继承

就是父类和子类。根类和子类。

父类的非私有实例变量和方法都会成为新类定义的一部分。

在子类中使用父类的实例变量,父类必须先在接口部分声明。

父类在实现部分声明和合成的实例变量是私有的,子类中并不能直接访问。

需要明确定义或合成取值方法,才能访问实例变量的值。

也就是在接口部分声明的变量/方法是公开的。

类的每个实例都拥有自己的实例变量,即使这些实例变量是继承来的。

查找方法

先找子类,再找父类,找到为止。如无法找到,则报错无法相应这个方法。

继承通常用于扩展一个类。

扩展自己或他人以前实现的类,使它适合自己的需要。

分类:允许你以模块的方式向现有类定义添加新的方法。

@class 指令

如果使用一个类,却不需要了解这个类的实现(使用它的方法、实例变量),可以用@class 声明这个类,不用import

只是告诉编译器,这是一个类。

实例基本是指针,所以在生成,拷贝,返回时,注意其是已有的指针,还是新生成的实例变量。

不要直接返回子类变量的指针,容易被修改。想修改可以通过添加取值方法,创建一个对象的副本,并返回副本的对象。

覆写方法

不能通过继承删除或减少方法,但是可以通过覆写来更改继承方法的定义。

只要定义一个同名的方法,使用和父类相同的名称定义的方法代替或覆写了继承的定义。

新方法必须具有相同的返回类型,并且参数的树木与覆写的方法相同。

好像可以在父类中使用子类的方法?不过不建议这么做。

为什么创建子类?

1. 希望继承一个类的函数,也许加入一些新的方法和/或实例变量。

2. 希望创建一个类的特别的版本。

3. 希望通过覆写一个或多个方法来改变类的默认行为。

抽象类

有时候创建类只是为了更容易创建子类。这些类可以成为抽象类或抽象超类。

可以定义任何方法和实例变量,但不期望任何人从这个类创建实例。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: