Objective c 如何基于父对象定义子对象?
这是一个一般性问题。我可以把我的问题分为两部分: 我有一个孩子班,她来自家长班Objective c 如何基于父对象定义子对象?,objective-c,oop,parent-child,Objective C,Oop,Parent Child,这是一个一般性问题。我可以把我的问题分为两部分: 我有一个孩子班,她来自家长班 ParentClass有许多属性和方法 ChildClass有一些新方法和一些新属性 1) 我想定义一个initFromParentClass方法,其签名为 - (id) initFromParentClass:(ParentClass)anObjectFromTheParentClass 这将基于ParentClass中的对象创建一个新的子类实例——也就是说,新实例的所有属性都是从“父实例”的属
- ParentClass有许多属性和方法
- ChildClass有一些新方法和一些新属性
initFromParentClass
方法,其签名为
- (id) initFromParentClass:(ParentClass)anObjectFromTheParentClass
这将基于ParentClass中的对象创建一个新的子类实例
——也就是说,新实例的所有属性都是从“父实例”的属性“复制”的
2) 这两个父/子对象可以动态链接吗?如果父母改变了,孩子也会改变
谢谢一个熟悉的习惯用法是让子类将现有方法委托给父类的实例:
@implementation ChildClass
@property (nonatomic, strong) ParentClass *obj;
- (void) mill
{
[obj mill];
}
- (NSInteger) count
{
return [obj count];
}
如果ParentClass有一个广泛且快速变化的API,那么这可能会很乏味并且很难维护。在这种情况下,您可能根本不希望继承,而是希望从ParentClass和ChildClass中提取一个公共接口,并可能让ChildClass的实例观察对初始化它们的对象所做的更改