Objective-C 快速導覽 - 繼承

繼承 (inheritance) 使子類別 (subclass) 得到父類別 (superclass) 的屬性 (property) 及方法 (method) 等特性,可以加入新的屬性或方法,也可改寫父類別的方法。



繼承的寫法就是在子類別名稱後加上冒號,然後是父類別名稱,例如
@interface Demo: NSObject


這裡 Demo 為自訂類別 (class) 的名稱,冒號後的 NSObject 為 Foundation.h 中的基礎類別名稱,基本上 Objective-C 中的所有類別都需要繼承 NSObject


舉例如下
#import <Foundation/Foundation.h>

@interface Demo: NSObject
{
    int a;
}

@property int a;

- (void) do_something;

@end

@implementation Demo

@synthesize a;

- (void) do_something
{
    a = 9527;
}

@end

@interface Demo2: Demo

- (void) hello;

@end

@implementation Demo2

- (void) hello
{
    NSLog(@"Hello, %d!", [self a]);
}

@end

int main (int argc, const char * argv[]) {
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
 
    Demo2 *demo = [[Demo2 alloc] init];
    [demo do_something];
    [demo hello];
 
    [pool drain];
    return 0;
}

/* 《程式語言教學誌》的範例程式
   http://pydoing.blogspot.com/
   檔名:classdemo11.m
   功能:Objective-c 程式範例
   作者:張凱慶
   時間:西元 2013 年 4 月 */


編譯執行,結果如下



中英文術語對照
繼承inheritance
子類別subclass
父類別superclass
屬性property
方法method
類別class


您可以繼續參考
類別


相關目錄
Objective-C 快速導覽
Objective-C 教材
首頁



參考資料
Programming with Objective-C: About Objective-C
Programming with Objective-C: Working with Objects

沒有留言: