Erstellt zwei Klassen A
und B
wo B
Unterklassen A
. Beim Versuch, init B
es ruft [super init]
Warum verwendet die Superklasse A
die Implementierung von des Kindes (B
)?Warum wird die Implementierung einer untergeordneten Klasse bei der Initialisierung verwendet?
@implementation A
- (instancetype)init
{
self = [super init];
if (self) {
[self printMessage:@"Foo"];
}
return self;
}
-(void)printMessage:(NSString *)message
{
NSLog(@"From A: %@", message);
}
@end
Durchführung von B (Unterklassen A)
@implementation B
- (instancetype)init
{
self = [super init];
if (self) {
[self printMessage:@"Bar"];
}
return self;
}
-(void)printMessage:(NSString *)message
{
NSLog(@"From B: %@", message);
}
@end
Initialised Verwendung:
B *b = [[B alloc] init]
Erwartete Leistung:
From A: Foo
From B: Bar
Actual output:
From B: Foo
From B: Bar
Sie haben haben Sie nicht die Mühe gemacht, die Objective-C-Programmierhandbuch zu lesen. – trojanfoe
@trojanfoe Schön und konstruktiv kommentieren ... – Jonathan
Ich muss überhaupt nicht konstruktiv sein. ** Sie ** müssen suchen, bevor Sie sinnlose Fragen stellen. – trojanfoe