黑马程序员技术交流社区
标题:
继承和多态
[打印本页]
作者:
S970028126
时间:
2015-6-25 09:28
标题:
继承和多态
继承:
A
{
}
B : A
{
} //类B拥有类A的所有东西
继承的好处:
1.抽取重复代码
2.建立了类之间的关系
继承的使用场合:
1.当两个类拥有相同属性和方法时,就可以将相同的东西抽取到一个父类中
2.当A类拥有B类中的部分属性和方法时,可以考虑让B类继承A类
void feed(Dog *d)
{
[d eat];
}
void feed2(Cat *c)
{
[c eat];
}
void feed(Animal *a) //可以用这一个函数取代前面两个函数
{ //多态的好处
[a eat];
}
Animal *a = [Dog new]; //多态: 父类指针指向子类对象
多态的好处:
如果参数中使用的是父类类型,可以传入父类,子类对象,节省代码
多态的局限性:
Animal *aa = [Dog new];
[aa run];//警告 能通过,但是不建议这样写
父类类型的变量 不能 用来调用子类的方法,虽然能调用成功
可以先强制转换
Dog *dd = (Dog *)aa; //骗一下编译器
[dd run];
总结:
多态:
继承:
1.没有继承,就没有多态
2.代码的体现:父类类型的指针指向子类对象
3.好处:如果参数中使用的是父类类型,可以传入父类,子类对象,节省代码
4.局限性:
父类类型的变量不能直接调用子类特有的方法,必须强转为子类类型变量后,才能直接调用子类特有的方法
作者:
cuin
时间:
2015-6-25 10:08
总结的很好!受教了!
作者:
离经叛道的女子
时间:
2015-6-27 00:03
不错 ,今天刚学到这里 复习了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2