今天学习面向对象的三个特性的最后一个-多态,一下是具体的学习内容:
什么是多态:
1.只有在继承的时候才有多态
2.代码的体现:
父类类型的指针指向子类对象
3.好处:
如果函数\方法参数中使用的是父类类型,可以传入父类、子类对象
4.局限性:
父类类型的变量不能直接调用子类特有的方法。必须强转为子类类型变量后,才能直接调用子类特有的方法
下面是一段代码,意在了解多态的运用方式:
#import <Foudation/Foudation.h>
// Person 类
@interface Person : NSObject
{
int _age;
double _height;
}
// age的set-get方法
- (void)setAge:(int)age;
- (int)age;
// height的set-get方法
- (void)setHeight:(double)height;
- (double)height;
@end
@implementation Person
// age的set-get方法
- (void)setAge:(int)age
{
_age = age;
}
- (int)age
{
return _age;
}
// height的set-get方法
- (void)setHeight:(double)height
{
_height = height;
}
- (double)height
{
return _height;
}
@end
@interface Student : Person//继承
@end
@implementation Student
@end
int main()
{
// 父类的指针指向子对象
Person *p = [Student new];
}
总结:要熟记多态的应用条件,只有在继承的情况下才可以,用父类的指针指向子类对象!