第三章 繼承

2021-09-11 14:15:59 字數 938 閱讀 1847

通過擴充套件或者修改既有類來定義新類的方法叫做繼承(inheritance)。

子類可以:追加新的方法;追加新的例項變數;重寫定義父類中的方法

父類和子類是一種相對稱呼

在集合用語中,子集指的是比較小的集合,但在類的情況下子類一般是父類的擴充套件。

oc有唯一根類,所有物件直接或間接繼承了nsobject類中定義的各種屬性

如果子類沒有特別想繼承的類,就需要指定nsobject為父類。

重寫方法時,需要在介面中重新宣告,在宣告中加上注釋方便理解    /*  override  */

子類必須包含父類介面的標頭檔案。

super與self不同,並不確定指向某個物件,所以super只能被用於呼叫父類的方法,不能通過super完成賦值,也不能把方法的返回值指定為super。

重寫init初始化方法的格式:

- (id)init

self = [super init];

if (self != nil) {

return self;

如果想在乙個方法中呼叫當前類中定義的方法,可以利用self。但如果存在繼承關係,通過self呼叫方法時要格外小心。

方法定義時的注意事項:

區域性方法:

區域性方法名最好新增固定字首。

區域性方法名不在介面檔案中宣告,在實現檔案中直接實現,位置必須放在其他方法定義之前。

指定初始化方法:

就是能確保所有例項變數都能被初始化的初始化方法,這種方法是初始化的核心。除此之外還有一些通過封裝來呼叫制定初始化方法的方法叫非指定初始化方法。

因為類的非指定初始化方法呼叫指定初始化方法完成初始化。所以子類重寫父類的指定初始化方法,就一定要呼叫父類的指定初始化方法,而不能呼叫父類的非指定初始化方法,否則會造成遞迴迴圈呼叫,無法終止。

第三章 堆疊

1.基礎知識 堆疊可以實現很多的應用,遞迴的問題轉化成非遞迴形式,在本質上也是堆疊的問題.它是一種 filo 操作的資料結構,一般也有兩種儲存方式 陣列跟鍊錶實現形式,這裡我給出了鍊錶形式的堆疊模板,裡面包括了基本的堆疊所有的操作,還有兩個比較著名的應用例子,時間倉促,精力比較有限,關於迷宮老鼠還沒...

第三章 曙光

第三章 曙光 第二場校園招聘開始了。其實,洋對這個公司的不是很了解。因為前幾天突然在bbs上面看到了這個公司的招聘資訊,洋覺得這個公司不錯,就上網投了簡歷。接下來的乙個多小時,讓洋很震撼!想不到這個公司這個厲害,而且無論從哪方面來說,絕對不比之前的那個公司差。想不到自己的乙個不經意的決定到了這個大的...

第三章 遞迴

遞迴是一種強大的方法,它允許乙個物件以其自身更小的形式來定義自己。恐怕沒有什麼比觀察神秘的自然界中出現的遞迴現象更好的方法來體會遞迴的重要意義了。想想蕨類植物的葉子,每片葉子的小枝幹都是整片葉子的較小縮影 又或者兩個反光的物體,相互對映對方的漸遠的影像。這樣的例子使我們明白儘管大自然的力量是強大的,...