多态的经典实例
@interface Animal : NSObject
- (void)eat;
@end@implementation Animal
- (void)eat
{NSLog(@"Animal-吃东西----");
}
@end
@interface Dog : Animal
- (void)run;
@end@implementation Dog
- (void)run
{NSLog(@"Dog---跑起来");
}
- (void)eat
{NSLog(@"Dog-吃东西----");
}
@end
@interface Cat : Animal@end@implementation Cat
- (void)eat
{NSLog(@"Cat-吃东西----");
}
@end
void feed(Animal *a)
{[a eat];
}int main()
{Animal *aa = [Dog new];Dog *dd = (Dog *)aa;[dd run];Animal *aa = [Animal new];feed(aa);Dog *dd = [Dog new];feed(dd);Cat *cc = [Cat new];feed(cc);Animal *c = [Cat new];NSObject *n = [Dog new];NSObject *n2 = [Animal new];Animal *a = [Dog new];[a eat];return 0;
}