Son.h
Father.h
Father.m
main.m
#import <Foundation/Foundation.h>
//导入父类的头文件
#import "Father.h"
@interface Son : Father
@property() char *sonName;
@end
Son.m
#import "Son.h"
@implementation Son
//当从父类继承过来的方法不能满足
//子类的需求时,就需要重写也叫覆盖。
-(void)showName
{
//重新实现一下它的功能 这个过程就叫重写,也叫覆盖。
NSLog(@"这是子类中得方法");
printf("sonName = %s\n",_sonName);
}
@end
Father.h
#import <Foundation/Foundation.h>
@interface Father : NSObject
@property() char *name;
//声明一个- 方法用输出姓名
-(void)showName;
@end
Father.m
#import "Father.h"
@implementation Father
-(void)showName
{
NSLog(@"我是父类中得showName");
printf("name = %s\n",_name);
}
@end
main.m
#import <Foundation/Foundation.h>
#import "Father.h"
#import "Son.h"
int main(int argc, const char * argv[])
{
@autoreleasepool {
//1.创建父类的对象
Father *father = [[Father alloc] init];
father.name = "父类";
[father showName];
//2.创建一个子类的对象
Son *son = [[Son alloc] init];
son.sonName = "子类的名字";
[son showName];
//子类重写方法以后会覆盖掉父类中的内容。子类
//中方法优先起作用,父类中原来的方法不起作用了。
//重写以后 只对子类有影响
[father showName];
}
return 0;
}