今天学习的是多态,下面是多态总结的要点;
1,多态是在继承的基础之上的
2,多态在代码中的体现是:父类指针指向子类对象
3,多态的好处是:在不同的累方法中有相同的父类,可以将多个方法整合成一个父类,从而取出代码冗余
例:
@interface Animal : NSObject
- (viod)eat;
@end
@implementation Animal
- (viod)eat
{
NSLog(@"animal eating!")
@end
@interface Dog :Animal
@end
@implementation Dog
- (void)eat
{
NSLog(@"dog eating");
}
@end
@interface Cat : Animal
@end
@implementation Cat
- (viod)eat
{
NSLog(@"cat eating")
}
@end
void feed(animal *a)
{
[a eat]
}
int main()
{
Dog *d=[Dog new];
Cat *c=[Cat new];
feed(d); //feed dog
feed(c) ; //feed cat
return 0;
}
在多态中可以用父类类型定义子类对象的对象指针
例如:
Animal *dog=[Dog new];
[dog eat]; //输出是”dog eating“,对象的变量和方法会选择对象的真实类型来决定
不会依赖对象指针类型
|
|