一起Talk IOS吧(第十八回 OC中的繼承例項)

talk_8發表於2020-12-27

看官們,我們在上一章回中對繼承做了概述性的介紹,這一回中通過具體的例子來介紹如何使用繼承。下面是具體的程式碼:

#import<Foundation/Foundation.h>

//定義父類Phone,類中包含兩個屬性和一個方法
@interface Phone : NSObject

@property char * name;
@property int size;

-(void) makeCall;
@end

//定義並且實現父類Phone。主要是實現了init和os方法
@interface AndroidPhone : Phone
-(void) os;
@end

@implementation AndroidPhone

	-(instancetype) init {
		self = [super init];

		if(self) {
			[super setName:"this is AndroidPhone"];
			[super setSize:7];
		}

		return self;
	}

	-(void) os {
		NSLog(@"this is AndroidPhone");
	}

@end

我們分析一下上面的程式碼。程式碼中定義了父類Phone和子類AndroidPhone。繼承通過冒號來實現,具體的語法為:

SubClass : BaseClass.

子類通過繼承獲取了父類的屬性和方法,子類可以通過super關鍵字來呼叫父類的方法。比如子類的init方法中就直接呼叫了父類的init方法,這點我們在前面章回中介紹init方法時提到過,不過當時還沒有介紹繼承,因此一筆帶過,現在大家應該明白其中的含義了吧。

子類在繼承父類的同時還可以定義屬於自己的內容,比如屬性和方法,上面的程式碼中子類就定義了自己的方法:os。有看官說,子類中定義方法時如果和父類的方法重名了怎麼辦?這位看官的問題很好,這便是方法的重寫,我們將在後面的章回中介紹。

最後我們對本章回中的內容做一個總結:

  • 1.繼承的語法通過冒號實現;
  • 2.子類繼承了父類的屬性和方法;
  • 3.子類可以通過super關鍵字呼叫父類的方法和屬性;
  • 4.子類在繼承父類的同時還可以定義屬於自己的屬性和方法;

看官們,欲知後事如何且聽下回分解!

相關文章