Objective-C 程序设计 第八章

继承

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

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

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

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

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


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

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


查找方法

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


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

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

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


@class 指令

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

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


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

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


覆写方法

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

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

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


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

为什么创建子类?

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

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

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


抽象类

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

可以定义任何方法和实例变量,但不期望任何人从这个类创建实例。






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值