首页 > 代码库 > 多态的实现
多态的实现
1.如何实现多态
- Animal是父类,子类有Cat 和 Dog,子类分别重写了父类中的eat方法;实例化对象的时候可以用下面的方法:
Animal *animal = nil;//实例化猫的对象animal = [Cat new];[animal eat];//实例化狗的对象animal = [Dog new];[animal eat];
2.多态的原理
- 动态绑定:
- 动态类型能使程序直到执行时才确定对象的真实类型
- 动态类型绑定能使程序直到执行时才确定要对那个对象调用的方法
- OC不同于传统程序设计语言,它可以在运行时加入新的数据类型和新的程序模块:动态类型识别,动态绑定,动态加载
- id类型:通用对象指针类型,弱类型,编译时不进行具体类型检查
3.多态的注意点
- 1)如果存在多态,父类是可以访问子类特有的方法
假设 子类 Dog 有一个特有的方法bark[dog bark];Animal *an2 = [Dog new];[(Dog*)an2 bark]; //把父类的指针,强制类型转换
- 2)如果不存在多态,父类是不可以访问子类特有的方法的
Animal *an3 = [Animal new];[(Dog*)an3 bark]; //错误的,不能强制转换
多态的实现
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。