Ho due classi, denominate Parent
e Child
, come di seguito. Parent
è la superclasse di Child
Posso chiamare un metodo della superclasse dalla sottoclasse utilizzando la parola chiave super
. È possibile chiamare un metodo di sottoclasse dalla sua superclasse?Chiamare il metodo della sottoclasse dalla sua superclasse
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
Importa "Parent.h" in intestazione del file .m applicazione del delegato.
il metodo di App delegato application:didFinishLaunchingWithOptions:
..
Parent *parent = [ [Parent alloc] init];
[parent methodOfParent];
[parent release];
Sì, è tecnicamente possibile ma questo design ha un cattivo odore. Davvero pessimo. Le superclassi non dovrebbero conoscere le loro sottoclassi. –
Voglio raggiungere lo stesso quando chiamato da swift, swift in grado di riconoscere i metodi in tale gerarchia. Qualcuno può dire come ottenere lo stesso quando la prima chiamata viene inizializzata da una classe veloce? – NaXir