码迷,mamicode.com
首页 > 其他好文 > 详细

方法覆盖(重写)

时间:2015-12-10 23:52:10      阅读:199      评论:0      收藏:0      [点我收藏+]

标签:

 方法重载:相同的方法名称 不同的参数个数或类型构成方法重载。       OC没有方法重载

//
//  Animal.h

#import <Foundation/Foundation.h>

@interface Animal : NSObject
-(void)run;
-(void)play;

@end

#import "Animal.h"

@implementation Animal
-(void)run{
    NSLog(@"run...");
}
-(void)play{
    NSLog(@"play...");

}
@end
//
//  Cat.h
#import <Foundation/Foundation.h>
#import "Animal.h"
@interface Cat : Animal

@end

#import "Cat.h"

@implementation Cat
-(void)run{
    NSLog(@"猫猫run...");
}
-(void)play{
    NSLog(@"猫猫play...");
    
}
@end
//
//  Dog.h

#import <Foundation/Foundation.h>
#import "Animal.h"
@interface Dog : Animal

@end
//
//  Dog.m

#import "Dog.h"

@implementation Dog
-(void)run{
  [super run]; //这里可以调用父类的run方法 NSLog(
@"狗狗run...");//重写了父类方法 } -(void)play{ NSLog(@"????play..."); } @end
//
//  main.m

#import <Foundation/Foundation.h>
#import "Cat.h"
#import "Dog.h"
int main(int argc, const char * argv[]) {
    @autoreleasepool {
        Cat *cat = [[Cat alloc]init];
        [cat run];//首先从Cat类中寻找方法 找不到在从cat的超类中寻找 重写父类方法就可以写在cat方法里
        [cat play];
        Dog *dog = [[Dog alloc]init];
        [dog run];
        [dog play];
    }
    return 0;
}

 

方法覆盖(重写)

标签:

原文地址:http://www.cnblogs.com/WJR12/p/5037527.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!