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