05.黑马程序员-继承、super关键字和多态
来源:互联网 发布:linux函数 sleep 编辑:程序博客网 时间:2024/05/18 21:39
1. 继承
1.1 继承的专业术语
父类/超类 superclass
子类 subclass/subclasses
1.2 继承的使用场合
1> 当两个类拥有相同属性和方法的时候,就可以将相同的东西抽取到一个父类中
2> 当A类完全拥有B类中的部分属性和方法时,可以考虑让B类继承A类
继承:xx 是 xxx
组合:xxx 拥有 xxx
A { int _age; int _no; } B : A { int _weight; } // 继承:xx 是 xxx // 组合:xxx 拥有 xxx 2.组合 A { int _age; int _no; } B { A *_a; int _weight; }
1.3 继承的优点和缺点
继承的好处:
1> 抽取重复代码
2> 建立了类之间的关系
3> 不改变原来模型的基础上,扩充方法
继承的缺点:
耦合性强
1.4 注意点
1> 父类必须声明在子类的前面2> 子类不能拥有和父类相同的成员变量
3> 调用某个方法时,优先去当前类中找,如果找不到,去父类中找
4>单继承
1.5 重写
子类重新实现父类中的某个方法,覆盖父类以前的做法
2. super关键字
super的作用
1.直接调用父类中的某个方法
2.super处在对象方法中,那么就会调用父类的对象方法
super处在类方法中,那么就会调用父类的类方法
使用场合:子类重写父类的方法时想保留父类的一些行为
3.多态
3.1 多态的基本概念
没有继承就没有多态
某一个事物的多种形态
OC对象具有多态性
3.2 多态的体现
Person *p = [Student new];p->age = 100;[p walk];
子类对象赋值给父类指针
父类指针访问对应的属性和方法
3.3 多态的优缺点
优点:如果函数\方法参数中使用的是父类类型,可以传入父类、子类对象
缺点: 父类类型的变量 不能 直接调用子类特有的方法。必须强转为子类类型变量后,才能直接调用子类特有的方法
以下代码中Animal是父类,Dog是子类,run方法是Dog的对象方法
Animal *aa = [Dog new]; // 多态的局限性:父类类型的变量 不能 用来调用子类的方法 //[aa run]; // 将aa转为Dog *类型的变量 Dog *dd = (Dog *)aa; [dd run];
3.4 多态的细节
动态绑定:在运行时根据对象的类型确定动态调用的方法
以下代码中Animal是父类,Dog是子类,[a eat]调用的时Dog的eat方法
// 多态:父类指针指向子类对象 Animal *a = [Dog new]; // 调用方法时会检测对象的真实形象 [a eat];
0 0
- 05.黑马程序员-继承、super关键字和多态
- 黑马程序员-----继承和多态、final关键字、static关键字
- 黑马程序员-super和this关键字
- 黑马程序员--this和super关键字
- 黑马程序员---关于super和self关键字
- 黑马程序员———面向对象之继承super和final关键字
- 黑马程序员-day05-面向对象(this关键字和super关键字)
- JAVA中的super关键字,继承和多态
- 黑马程序员---5、Super关键字
- 黑马程序员--继承和final关键字
- 黑马程序员——面向对象特征二:继承,以及super,final,abstract关键字和接口知识
- 黑马程序员-- 二、this、super、final和static关键字
- 黑马程序员-OC语言中的两个关键字self和super
- 黑马程序员——Java基础---this和super关键字
- 黑马程序员--java基础--关键字this和super
- 黑马程序员-OC语言-self和super关键字(听课笔记)
- 黑马程序员—OC学习笔记—继承与super关键字运用
- 黑马程序员-继承和多态
- (4)QlikView表盘数据不能正常显示时的设置
- iphone学习入门
- 共享文件夹如何授权给其他服务器的管理员用户
- Android网络连接之HttpURLConnection和HttpClient
- 判断整数为奇偶数
- 05.黑马程序员-继承、super关键字和多态
- 一元,二元,三元运算符
- Android开发代码片段积累(一)
- set_include_path和get_include_path用法详解
- 在linux下C语言实现对键盘事件的监听
- 李克强在人民大会堂同马来西亚总理纳吉布举行会谈
- 黑马程序员-类加载器工作原理
- 数据结构之顺序栈
- Android四大基本组件及其生命周期介绍