oc继承,方法重写

#import <Foundation/Foundation.h>

#import "Dog.h"

#import "Cat.h"

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

    //面向对象三大特性  - 封装 继承 多态

    //封装 - 在代码中的体现:将属性隐藏起来,通过提供方法接口供外部设置和使用 - 功能:安全性

    //继承 - 设定为 父类和子类的关系,子类将会继承父类当中所有不是私有的属性和方法.

    // oc当中,所有的类最终都会继承与NSObject

    // 功能:1.将共有的功能封装集成在同一个类,让别的类对其继承,将可以省下多余的空间,使用上也会更加便利

    //      2.特有的重写功能,可以将本来继承而来的功能进行重新编写,而不会去影响其他使用这个方法的类。

    @autoreleasepool {

        Dog *dog = [[Dog alloc]init];

        Cat *cat = [[Cat alloc]init];

        [dog run];

        [dog eat];

        [dog lookAfterTheHouse];

        

        [cat run];

        [cat eat];

        [cat catchMice];

    }

    return 0;

}

 
 
 
******* 动物类

#import <Foundation/Foundation.h>

@interface Animal : NSObject

{

    @public

    NSString *name;

    @public

    NSString *skin;

    @public

    int height;

}

 

- (void)run;

- (void)eat;

@end

#import "Animal.h"

 

@implementation Animal

 

- (void)run{

    NSLog(@"我是一只动物,可以奔跑");

}

 

- (void)eat{

    NSLog(@"我是一只动物,可以觅食");

}

 

@end

******************************

******* 动物的子类-狗类

#import <Foundation/Foundation.h>

#import "Animal.h"

@interface Dog : Animal

 

//看门

- (void)lookAfterTheHouse;

 

@end

 

#import "Dog.h"

 

@implementation Dog

 

//重写

- (void)run

{

    NSLog(@"我不是一只普通的动物,我是一只大黄狗,我跑的很快");

}

 

- (void)lookAfterTheHouse

{

    NSLog(@"我是一只狗,可以看门");

}

 

@end

******* 动物的子类-猫类

#import <Foundation/Foundation.h>

#import "Animal.h"

@interface Cat : Animal

- (void)catchMice;

@end

 

#import "Cat.h"

 

@implementation Cat

 

- (void)catchMice

{

    NSLog(@"我是一只猫,可以抓老鼠");

}

 

@end

 

posted on 2016-04-16 14:56  小|晄  阅读(291)  评论(0编辑  收藏  举报

导航