继承中的自定义构造方法

Posted iFat的笔记本

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了继承中的自定义构造方法相关的知识,希望对你有一定的参考价值。

1.继承中的自定义构造方法

  • 不能在子类访问父类私有变量
@interface Person : NSObject

@property int age;

- (id)initWithAge:(int)age;
@end



@interface Student : Person

@property NSString *name;

- (id)initWithAge:(int)age andName:(NSString *)name;
@end

@implementation Student

- (id)initWithAge:(int)age andName:(NSString *)name
{
    if (self = [super init]) {
//        这个_Age是父类中通过property自动在.m中生成的无法继承,不能直接访问
//        _age = age;
        [self setAge:age];
        _name = name;
    }
    return self;
}
@end
  • 父类的属性交给父类的方法来处理
@interface Person : NSObject

@property int age;

- (id)initWithAge:(int)age;
@end



@interface Student : Person

@property NSString *name;

- (id)initWithAge:(int)age andName:(NSString *)name;
@end

@implementation Student

- (id)initWithAge:(int)age andName:(NSString *)name
{
    if (self = [super initWithAge:age]) {
        _name = name;
    }
    return self;
}
@end

2.自定义构造方法的使用注意

  • (1)自己做自己的事情
  • (2)父类的属性交给父类的方法来处理,子类的方法处理子类自己独有的属性

  • 自定义构造方法必须以intiWith开头,并且’W’必须大写

 

以上是关于继承中的自定义构造方法的主要内容,如果未能解决你的问题,请参考以下文章

片段中的自定义列表适配器

Android中的自定义视图控件

具有获取 json 值的片段中的自定义适配器

片段中的自定义列表视图。未找到布局

Three.js 中的自定义纹理着色器

Java语言中的继承