多态总结
来源:互联网 发布:外贸数据网 编辑:程序博客网 时间:2024/05/29 18:00
多态的意思:多种形态(对象的多种形态)
父类指针指向子类对象
Animal * a = [Dog new];
调用方法时会检测对象的真实形象
[a eat];//调用的还是子类的方法(Dog)
多态的使用注意
当使用多态的时候要注意逻辑性
比如
//如果这样写的话 狗是一只猫 明显是错误的
但是编译器并不会报错
Cat * c = [Dog new];
多态的好处
如果参数中使用的父类类型 那么父类和子类类型都可以传入
比如说想喂狗和猫
定义声明以后
声明一个函数
void feed(Animal *a)
{
[a eat];
}
接着在main函数里面
创建动物对象以及猫和狗对象
然后
Animal *aa = [Animal new];
feed(aa)//表示把对象动物 传入给了函数feed里面去 就可以喂动物了
同样的
Dog *dd = [Dog new];
feed(dd);//把动物这个对象也传入给了函数feed 就可以给狗喂东西了
eat动物吃东西和feed 喂动物是不一样的
多态的局限性
不能直接用父类指针调用子类方法
强转
Animal *aa =[Dog new];
Dog *dd = (Dog *)aa;//把父类类型强转成Dog(子类)类型
多态总结
1>没有集就没有多态
2>代码的体现:父类类型的指针指向子类对象
3>好处:如果函数\方法参数中使用的是父类类型,可以传入父类,子类对象
4>局限性
父类类型的变量 不能 直接调用子类特有的方法.必须强转为子类类型变量后,才能直接调用子类特有的方法
0 0
- c# 多态总结
- 动态多态总结
- 多态总结
- 多态总结
- 多态总结
- java 多态总结
- 多态的总结
- C++多态总结
- Java 多态总结
- java_多态总结
- java 多态总结
- 多态问题总结
- 多态总结
- java 多态总结
- 多态总结
- Java多态总结
- 多态总结
- c++多态总结
- 实验一:算数编码实验
- SQLServer数据库导入.mdf文件报错解决问题
- 欢迎使用CSDN-markdown编辑器
- 使用volley并结合HttpClient实现上传文件
- OBJ文件中顶点的对应值
- 多态总结
- WIFI知识学习
- 【Effective c++ 读书笔记】条款01 视 C++ 为一个语言联邦
- JAVA基础第五天
- java 6.24
- LintCode-k数和 II
- 基础了解
- 指针小应用:推箱子游戏
- stm32f4xx 加密