oc中继承、方法重写及super的使用

继承-方法重写及super的使用

 

ClassA.h文件

 

//  ClassA.h

//  Twopage

//

//  Created by Evis on 12-7-22.

//  Copyright (c) 2012 __MyCompanyName__. All rights reserved.

//

 

#import <Foundation/Foundation.h>

 

@interface ClassA : NSObject{

    int x;

}

-(void)setX;

 

@end

 

ClassA.m文件

 

//  ClassA.m

//  Twopage

//

//  Created by Evis on 12-7-22.

//  Copyright (c) 2012 __MyCompanyName__. All rights reserved.

//

 

#import “ClassA.h”

 

@implementation ClassA

 

-(void)setX{

    x = 10;

}

 

@end

 

ClassB.h文件

 

//  ClassB.h

//  Twopage

//

//  Created by Evis on 12-7-22.

//  Copyright (c) 2012 __MyCompanyName__. All rights reserved.

//

 

#import <Foundation/Foundation.h>

#import “ClassA.h”;

 

@interface ClassB : ClassA //继承ClassA

 

-(void)printX;

 

-(void)setX;//Class中也有一个相同的方法

 

@end

 

ClassB.m文件

 

//  ClassB.m

//  Twopage

//

//  Created by Evis on 12-7-22.

//  Copyright (c) 2012 __MyCompanyName__. All rights reserved.

//

 

#import “ClassB.h”

 

@implementation ClassB

 

-(void)printX{

    NSLog(@”%i”,x);

}

 

-(void)setX{

    x = 11;

    //[super setX];//利用super访问父类中的方法

}

 

@end

 

main.m文件

 

//  main.m

//  Twopage

//

//  Created by Evis on 12-7-16.

//  Copyright (c) 2012 __MyCompanyName__. All rights reserved.

//

 

#import <Foundation/Foundation.h>

#import “ClassB.h”

 

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

{

 

    @autoreleasepool {

       

        // insert code here…

        ClassB *classB = [[ClassB alloc]init];

       

        [classB setX];

        [classB printX];

    }

    return 0;

}

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注