昨天在论坛上看到,很多人使用着面向对象的语言,却用面向过程的写法,面向对象的三大特征------封装 继承 多态,今天就来温习一下继承.
继承,是子类将继承父类所有的变量和方法,省去了在子类中重复写相同的代码,提高了代码的简洁,同时易于修改.
在继承中重载时,要保证子类和父类中的方法名称一样,并且相同的返回类型,参数的个数与重载的方法相同
示例代码:
ClassA.h
@interface ClassA : NSObject { int x; } -(void)input; @end
ClassA.m
@implementation ClassA -(void)input{ x = 100; NSLog(@"ClassA中输入:%d",x); } @end
ClassB.h
@interface ClassB : ClassA -(void)input;//重载 -(void)printf; @end
ClassB.m
@implementation ClassB -(void)input{ // [super input];//调用父类的方法 x = 200;//ClassA中的方法进行重写 } -(void)printf{ NSLog(@"ClassB中输出:%d",x); } @end
main.m
#import <Foundation/Foundation.h> #import "ClassB.h" int main(int argc, const char * argv[]) { @autoreleasepool { // insert code here... NSLog(@"Hello, World!"); ClassB *b = [[ClassB alloc] init]; [b input]; [b printf]; } return 0; }