多态

//
//  main.m
//  commandLineProject
//

#import 

// 定义接口
@interface Animal : NSObject
{
    // 添加一个成员变量
    NSString *name;
}

// 初始化自定义类的实例
- (id)initWithName:(NSString *)name;
// 定义一个实现业务功能函数
- (void)moveTo:(NSString *)destination;

@end

// 实现实例方法
@implementation Animal

- (id)initWithName:(NSString *)animalName
{
    name = animalName;
    return self;
}

- (void)moveTo:(NSString *)destination
{
    NSLog(@"%@ moves to %@", name, destination);
}

@end


// 继承 Animal 类
@interface Tiger : Animal

// 定义一个和父类一样的方法
- (void)moveTo:(NSString *)destination;

@end

// 实现继承类
@implementation Tiger

- (void)moveTo:(NSString *)destination
{
    NSLog(@"%@ jump to %@", name, destination);
}

@end


// 创建一个新的子类
@interface Bird : Animal

- (void)moveTo:(NSString *)destination;

@end

@implementation Bird

- (void)moveTo:(NSString *)destination
{
    NSLog(@"%@ film to %@", name, destination);
}

@end

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        // 初始化第一个实例,并赋值
        Tiger *tiger = [[Tiger alloc] initWithName:@"Will"];
        [tiger moveTo:@"the cave."];
        
        Bird *bird = [[Bird alloc] initWithName:@"Dove"];
        [bird moveTo:@"the nest."];
    
    }
    return 0;
}

你可能感兴趣的:(多态)