Допустим, у нас есть класс Base.
@inerface Base : NSObject
{
}
+(id) instance;
@end
@implementation Base
+(id) instance
{
return [[[self alloc] init] autorelease];
}
-(id) init
{
...
}
@end
И у нас есть производный класс Derived.
@interface Derived : Base
{
}
@end
, который переопределяет метод init
.
Теперь мы хотим создать экземпляр класса Derived, используя метод класса +(id) instance
.
id foo = [Derived instance];
И теперь foo на самом деле является базовым классом.
Как добиться, чтобы foo был производнымкласс в этом случае?
Должен ли я переопределить все методы класса для производных классов?(на самом деле реализация будет полностью такой же).
Есть ли более элегантный способ?