IOS征途之二 OC实现继承

今天是正式下定决定学好IOS的第二天,用代码写了一个继承的励志。因为对比以往经验来说,继承直接影响了代码的美观性,可读性。
(再顺便mark一个疑问,IOS似乎并不重视抽象类的使用?网上有人说协议protocol可代替,可是还未领略到其中之美,mark有待观察)

OC继承实例代码如下:

目录结构:
这里写图片描述

基类:

BaseAnimal.h

#import <Foundation/Foundation.h>

@interface BaseAnimal : NSObject
-(void)eat;
-(void)runSpeed : (int) speed;
@end

BaseAnimal.m

#import "BaseAnimal.h"

@implementation BaseAnimal
-(void)eat
{
    NSLog(@"Nothing!");
}
-(void) runSpeed : (int) speed
{
    NSLog(@"runSpeed is %i" , speed);
}
@end

Dog.h

#import <Foundation/Foundation.h>
#import "BaseAnimal.h"

@interface Dog : BaseAnimal{

}
@end

Dog.m

#import "Dog.h"

@implementation Dog
- (void)eat
{
    NSLog(@"Dog eat shit!");
}
@end

Cat.h
略.

Cat.m

#import "Cat.h"

@implementation Cat

@end

main.m

#import <Foundation/Foundation.h>
#import "Dog.h"
#import "Cat.h"

int main(int argc, const char * argv[])
{

    @autoreleasepool {

        Dog *d = [[Dog alloc] init];
        [d eat];
        [d runSpeed:5];

        Cat *c = [[Cat alloc] init];
        [c eat];
        [c runSpeed:2];

    }
    return 0;
}

运行结果:

2015-09-14 23:54:46.412 Lesson2[888:303] Dog eat shit!
2015-09-14 23:54:46.414 Lesson2[888:303] runSpeed is 5
2015-09-14 23:54:46.415 Lesson2[888:303] Nothing!
2015-09-14 23:54:46.415 Lesson2[888:303] runSpeed is 2
Program ended with exit code: 0
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章