美文网首页
objc重载父类属性

objc重载父类属性

作者: 水水兔 | 来源:发表于2019-11-27 15:43 被阅读0次
@interface parent : NSObject
@property(strong,nonatomic,readonly) NSString* familyName;
@end

@implementation parent
- (instancetype)init{
    self = [super init];
    if (self) {
    }
    return self;
}

@end


@interface child : parent
@property(strong,nonatomic) NSString* familyName;

@end

@implementation child
//@synthesize familyName = _familyName;

- (instancetype)init{
    self = [super init];
    if (self) {
    }
    return self;
}
//- (void)setFamilyName:(NSString *)familyName{
//    _familyName = familyName;
//}
@end

如上,child重载了父类只读属性familyName,child重载后变成了可读可写权限。然后在调用时如下,会出现崩溃。

 child *c = [[child alloc]init];
    c.familyName = @"fff";
    NSLog(@"%@",c.familyName);

原因是因为familyName在父类只读,所以编译器只自动生成了getter方法。child修改了读写权限后,要手动添加settter才行,并且还有调用@synthesize生成变量。

相关文章

  • objc重载父类属性

    如上,child重载了父类只读属性familyName,child重载后变成了可读可写权限。然后在调用时如下,会出...

  • Python-类和对象

    关键词:类、实例、继承、重载创建类: 创建类实例对象: 属性操作: 类的继承: 继承类定义时,括号内填写父类名称继...

  • Java基础

    1 . 继承 子类拥有父类非 private 的属性、方法。 重载(Overload)既同名不同参的方法, 以参数...

  • exc_bad_access(code=1,address=0x

    symbol stub for: objc_storeStrong 在父类初始化的时候崩溃,原因是子类新建的属性值...

  • c++快速入门7:类和对象B:重载、继承和重写

    重载方法(Overloading) 就像函数重载,类方法也可以被重载--包括构造方法。 继承类的属性 派生类除了自...

  • Java类和对象

    1.类的继承: 使用 extends,可以继承父类的属性类型。 2.方法重载: 一样的方法名,根据传入的参数不同,...

  • C++派生类的友元函数,派生类的析构函数

    一、赋值兼容 运算符重载函数需要访问父类的私有成员,运算符重载函数是父类的友元函数,子类继承了父类,子类也可以使用...

  • super和this关键字的区别

    1.访问父类的属性,但不能访问父类的private属性[案例]super.属性名; 2.访问父类的方法,不能访问父...

  • 方法的重载与重写

    重载:同一类中,方法名相同,参数列表不同,这样的多个方法构成重载重写:不同类中,子类不满意父类的方法,创建与父类方...

  • 获得类的属性

    1、获取类的属性方法 OBJC_EXPORT objc_property_t *class_copyPropert...

网友评论

      本文标题:objc重载父类属性

      本文链接:https://www.haomeiwen.com/subject/vcipwctx.html