ClassA.h需要更多关于Objective-C的多态性和继承
@interface classA
-(void)print1;
-(void)print2;
@end
ClassA.m
-(void)print1 {
NSLog(@"I am class A 1");
}
-(void)print2 {
NSLog(@"I am class A 2");
}
ClassB.h
@interface classB : classA
-(void)print1;
@end
援助ClassB.m
-(void)print1 {
NSLog(@"I am class B");
}
AppDelegate.m
ClassA *a1 = [[ClassB alloc]init];
[a1 print1];
[a1 print2];
输出
I am class B
I am class A 2
错误
ClassB *a1 = [[ClassA alloc]init];
问题
ClassB
是ClassA
孩子意味着ClassB
有ClassA
功能和自身也。但ClassA
不知道ClassB
是它的孩子。
那么如何classA *a1 = [[classB alloc]init];
工作,并给予上述输出 和classB *a1 = [[classA alloc]init];
是给错误
这实际上对大多数(也许是所有)OOP语言都有效。 – Sulthan