Objective C 多型的例子

2021-06-28 09:22:07 字數 1488 閱讀 8897

寫寫學習多型時的例子:印表機有很多種,彩色印表機、黑色印表機、雷射印表機……去做列印這件事情就需要對應不同的印表機,若有乙個person類,那麼person類中就需要定義很多種方法。每增加一種新的印表機,都要修改person類,以增加相應的列印方法,**可擴充套件性和可維護性很差。多型可以解決的問題是,子類覆蓋父類的方法,每個子類實現的功能不相同,通過呼叫相同的方法來完成不同的事情。

以兩種印表機(黑白印表機&彩色印表機)為例,很簡潔:

printer類:

printer.h:

#import @inte***ce printer : nsobject

-(void) print;

@end

printer.m:

#import "printer.h"

@implementation printer

-(void) print

@end

colorprinter類:

colorprinter.h:

#import "printer.h"

@inte***ce colorprinter : printer

@end

colorprinter.m:

#import "colorprinter.h"

@implementation colorprinter

//重寫父類print方法

-(void) print

@end

blackprinter類

blackprinter.h:

#import "printer.h"

@inte***ce blackprinter : printer

@end

blackprinter.m:

#import "blackprinter.h"

@implementation blackprinter

//重寫父類print方法

-(void) print

@end

person類

person.h:

#import #import "printer.h"

@inte***ce person : nsobject

-(void) doprint: (printer *) printer;

@end

person.m:

#import "person.h"

@implementation person

-(void) doprint:(printer *)printer

@end

下面是main檔案裡的實現

#import "person.h"

#import "colorprinter.h"

#import "blackprinter.h"

int main(int argc, const char * argv)

return 0;

}

C 中的多型和Objective C中的「多型」

c 中的多型 兩種 編譯時匹配 函式過載,依據成員函式的名字 形參型別 形參個數等不同來實現不同的函式呼叫匹配 執行時匹配 虛函式,具體就是通過將父類或抽象類宣告時成員函式宣告為virtual,然後子類繼承並實現,應用時,通過將子類物件位址賦給其父類型別的指標 注,抽象類不能例項化,即不能定義物件,...

對多型的理解例子

public class a public string show a obj class b extends a public string show a obj class c extends b class d extends b public class testa 輸出結果為 1 a an...

封裝與多型例子

1 1 建立一動物類 animal 2 建立三個子類 dog cat pig都繼承於animal 3 為dog新增love 列印我喜歡吃骨頭 4 為cat新增love 列印我喜歡吃小魚 5 為pig新增love 列印我喜歡吃飼料 6 請建立乙個長度為3的動物陣列animal animals new ...