Наследование от двух классов в objective C [дубликат]



На этот вопрос уже есть ответ здесь:



У меня есть два класса. Я определил в нем некоторые методы. Мне нужно получить эти методы из этих двух классов в одном классе без переопределения. Objective C не поддерживает множественное наследование, так как же этого добиться?

717   2  

2 ответов:

Не используйте наследование, используйте композицию.

#import "classname1.h"
#import "classname2.h"

@implementation classname3

 -(id)method1
 {
     id val1 = [classname1 methodToUse];
     id val2 = [classname2 otherMethodToUse];
     return val1 + val2;
 }
@end

Objective-C не поддерживает множественное наследование. Вы можете создавать экземпляры класса и обращаться к их методам в новом классе

@interface class3
{
   class1 *c1;
   class2 *c2;
}

И методы доступа с использованием

[c1 yourMethod];
[c2 yourMethod];

Вы также можете использовать протоколы для доступа к методам из нескольких классов, создавая методы делегатов и реализуя их в другом классе, как описано в Разделе http://developer.apple.com/library/ios/#documentation/cocoa/conceptual/ProgrammingWithObjectiveC/WorkingwithProtocols/WorkingwithProtocols.html

Comments

    Ничего не найдено.