寫寫學習多型時的例子:印表機有很多種,彩色印表機、黑色印表機、雷射印表機……去做列印這件事情就需要對應不同的印表機,若有乙個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 ...