代码1:
#import <Foundation/Foundation.h>
@interface Animal : NSObject
- (void)eat;
@end
@implementation Animal
- (void)eat
{
NSLog(@"Animal-eat");
}
@end
@interface Dog : Animal
@end
@implementation Dog
- (void)eat
{
NSLog(@"Dog-eat");
}
@end
int main()
{
Animal* a = [Dog new];
[a eat];
return 0;
}
输出1:
Dog-eat
代码2:
#import <Foundation/Foundation.h>
// Animal
@interface Animal : NSObject
- (void)eat;
@end
@implementation Animal
- (void)eat
{
NSLog(@"Animal-eat");
}
@end
// Dog
@interface Dog : Animal
@end
@implementation Dog
- (void)eat
{
NSLog(@"Dog-eat");
}
@end
// Cat
@interface Cat : Animal
@end
@implementation Cat
- (void)eat
{
NSLog(@"Cat-eat");
}
@end
void feed(Animal* a)
{
[a eat];
}
int main()
{
Animal* a = [Animal new];
feed(a);
Dog* d = [Dog new];
feed(d);
Cat* c = [Cat new];
feed(c);
Animal* aa = [Dog new];
feed(aa);
return 0;
}
输出2:
Animal-eat Dog-eat Cat-eat Dog-eat
原文:http://my.oschina.net/Xwoder/blog/336806