OC类的继承-super关键字

来源:互联网 发布:百度软件中心 知乎 编辑:程序博客网 时间:2024/05/17 01:14

//

//  main.m

//  super关键字

//

//  Created by Goddog on 15/1/7.

//  Copyright (c) 2015 Goddog. All rights reserved.

//

/*

 1.如果需要在子类方法中调用父类被覆盖的实例方法,可以使用super关键字来调用。

 2.superself一样不能出现在类方法中,类方法的调用者只能是类的本身。

 3.子类继承父类时,子类可以获得父类中定义的成员变量,子类接口部分不能定义与父类接口部分重命名的成员变量。

 4.在类实现部分定义的成员变量被限制在该类的内部,故子类完全可以与父类实现部分定义的成员变量同名。

 5.当子类实现部分定义了与父类重名的成员变量,子类的成员变量就会隐藏父类的成员变量,可以调用父类的方法来访问父类中被隐藏的成员变量。

 6. 虽然程序只创建一个对象,但是对象内部还是有两块内存来保存a的成员变量,一块父类隐藏的,一块子类实现的。

 */

////  Father.h//  super关键字////  Created by Goddog on 15/1/7.//  Copyright (c) 2015年 Goddog. All rights reserved.//#import <Foundation/Foundation.h>@interface Father : NSObject//定义成员变量{    int _a;}@property (nonatomic,assign) int a;-(void) see;@end

////  Father.m//  super关键字////  Created by Goddog on 15/1/7.//  Copyright (c) 2015年 Goddog. All rights reserved.//#import "Father.h"@implementation Father@synthesize a = _a;-(id) init{    if (self == [super init]) {        self->_a = 8;    }    return self;}-(void) see{    NSLog(@"父亲看到了美女一号");}@end

////  Son.h//  super关键字////  Created by Goddog on 15/1/7.//  Copyright (c) 2015年 Goddog. All rights reserved.//#import <Foundation/Foundation.h>#import "Father.h"@interface Son : Father-(void) access;-(void) look;@end

////  Son.m//  super关键字////  Created by Goddog on 15/1/7.//  Copyright (c) 2015年 Goddog. All rights reserved.//#import "Son.h"@implementation Son{    //隐藏父类的成员变量    int _a;}//重写init方法-(id) init{    if (self == [super init]) {        self->_a = 12;    }    return self;}//子类方法-(void) access{    //如果直接访问是当前类中的成员变量    NSLog(@"直接访问时子类中的成员变量:%d",_a);        //访问父类的被隐藏的成员变量    NSLog(@"访问父类中被隐藏的成员变量:%d",super.a);}//重写方法-(void) see{    NSLog(@"儿子看到了美女二号!");}//调用父类的方法-(void) look{    [super see];}@end

#import <Foundation/Foundation.h>#import "Son.h"int main(int argc, const char * argv[]) {    @autoreleasepool {                //实例化对象        Son* son = [[Son alloc] init];        //调用父类的see方法        [son look];                //看访问的是父类还是本身        [son access];    }    return 0;}

0 0
原创粉丝点击