Tengo dos clases, llamadas Parent
y Child
, como a continuación. Parent
es la superclase de Child
Puedo llamar a un método de la superclase desde su subclase usando la palabra clave super
. ¿Es posible llamar a un método de subclase desde su superclase?Método de la subclase de llamada de su superclase
Child.h
#import <Foundation/Foundation.h>
#import "Parent.h"
@interface Child : Parent {
}
- (void) methodOfChild;
@end
Child.m
#import "Child.h"
@implementation Child
- (void) methodOfChild {
NSLog(@"I'm child");
}
@end
Parent.h:
#import <Foundation/Foundation.h>
@interface Parent : NSObject {
}
- (void) methodOfParent;
@end
Parent.m:
#import "Parent.h"
@implementation Parent
- (void) methodOfParent {
//How to call Child's methodOfChild here?
}
@end
importación "Parent.h" en el encabezado del archivo .m aplicación del delegado.
método de aplicación delegado application:didFinishLaunchingWithOptions:
..
Parent *parent = [ [Parent alloc] init];
[parent methodOfParent];
[parent release];
Sí, es técnicamente posible, pero este diseño huele. Muy mal. Se supone que las superclases no deben saber sobre sus subclases. –
Quiero lograr lo mismo cuando se llama desde rápido, rápido en no poder reconocer los métodos en dicha jerarquía. ¿Alguien puede decir cómo lograr lo mismo cuando se inicializa la primera llamada de una clase rápida? – NaXir