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