什么是多態


什么是多態:
多態就是父類指針指向子類指針。
 
什么意思呢?
首先,子類要繼承父類
那么就子類可以調用父類的東西
相當於把父類的東西在子類復寫了一遍
 
那么這個時候我在子類把在父類繼承過來的的東西自己寫一遍,並且改了繼承過來方法里面的東西
 
這個時候我要調用父類的指針調用子類對象的方法,就會首先在子類里面查找,找到之后就打印出來,如果沒有找到就會在父類里面查找,然后打印出來。
 
這里面如果子類自己增加方法,而父類沒有,就不能調用,因為父類里面沒有。
也就是說父類和子類的方法要一一對應。
 
父類可以增加方法,而子類自己增加,就算是自己增加,父類指針也不能調用新增的方法。
 
 
看下面的代碼:
mian 函數
 
#import <Foundation/Foundation.h>
#import "Animal.h"
#import "Pig.h"
#import "Dog.h"
int main(int argc, const char * argv[]) {
    @autoreleasepool {
        Animal *A =[Animal new];
        A=[Pig new];
        [A eat];
        [A walk];
        A=[Dog new];
        [A eat];
        [A walk];
        return 0;
    }
}
 
-------------------------------------------
動物的方法也就是父類
父類里面寫的方法子類可以繼承過去
#import <Foundation/Foundation.h>
@interface Animal : NSObject
-(void)eat;
-(void)walk;
@end
 
#import "Animal.h"
@implementation Animal
-(void)eat{
    NSLog(@"吃東西");
}
-(void)walk;
{
    NSLog(@"走路");
}
@end
 
---------------------------------
Pig類繼承了動物類
#import "Animal.h"
@interface Pig : Animal   //繼承了Animal
@end
 
#import "Pig.h"
@implementation Pig
-(void)eat
{
    NSLog(@"大口吃東西");
}
-(void)sleep;
{
    NSLog(@"睡覺");
}
@end
----------------------------------- 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM