黑马程序员——继承与多态
来源:互联网 发布:windows永久激活工具 编辑:程序博客网 时间:2024/06/05 14:15
------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net
培训</a>、期待与您交流! -------
一、继承
1、什么是继承
A与B两个类,若B包含了A所有属性,那么就没有必要在已经定义了A的基础上再去重写定义一个类B。B的属性可直接从A继承过来。继承后B成为子类,A成为父类。若B继承A,则B具备了A所有属性。可以理解为B是A,比如猫是动物,筷子是餐具。若A是猫,B是狗,那么B继承A就显然不成立。
2、继承的优缺点
在不改变原来模型的基础上,拓充方法。若B继承了A,B不仅可以拥有A所有的属性,还可以自己单独定义自己的属性,在A的基础进行进一步重写,使B的属性扩充。
建立了类与类之间的联系。B继承了A,那么B与A之间就建立起了联系。
抽取了公共代码。省去了相同的编写,使得程序编写复杂度降低,同时能增强程序可读性。
坏处:耦合性强。若父类程序发生改变,则其子类的相应属性也会跟着改变,这时可能会因想到B的某些功能,造成联锁反应。
3、继承的使用场合
它的所有属性都是你想要的,一般就继承。A的属性在B都使用,则B就可以继承A。
它的部分属性是你想要的,可以抽取出另一个父类。
二、多态
1、什么是多态?多态即多种形态。多态就是父类指针指向子类对象。多态是建立在继承的基础上,没有继承就没有多态。在使用多态时,会进行动态检测,以调用真实的对象方法。
2、多态的好处。好处:如果函数方法参数中使用的是父类类型,则可以传入父类和子类对象,而不用再去定义多个函数来和相应的类进行匹配了。
3、多态的局限性。父类类型的变量不能直接调用子类特有的方法,如果必须要调用,则必须强制转换为子类特有的方法。
三、self的用途:
1、self出现在方法中,谁调用了当前的方法,self就代表谁,self出现在对象方法中,self就代表对象,self出现在类方法中,self就代表类。
2、在对象方法中使用 self->成员变量名 来访问当前对象内部的成员变量,也可以写成self.成员变量名,即点方法。
3、[self 方法名]可以调用其他对象方法或类方法。
四、super的用途:
1、super的使用建立在继承的基础上。
2、直接调用当前方法所属类的父类的某个方法。
3、super处在对象方法中,那么就会调用父类的对象方法,super处在类方法中,就会调用父类的类方法。
4、当子类继承了父类的方法,并且重写了父类的某个方法,同时在子类的方法中又想调用父类的某个方法,此时就可采用super方法。
- 黑马程序员—继承与多态
- 黑马程序员—继承与多态
- 黑马程序员——封装,继承与多态
- 黑马程序员——继承与多态
- 黑马程序员——OC---继承与多态
- 黑马程序员——继承与多态
- 黑马程序员——多态与继承
- 黑马程序员—OC(继承与多态)
- 黑马程序员_继承与多态
- 黑马程序员_多态与继承
- 黑马程序员_继承与多态
- 黑马程序员--OC-多态与继承
- 黑马程序员-继承、接口与多态
- 黑马程序员—继承与final关键字
- 黑马程序员—继承
- 黑马程序员——Objective-C语言知识整理——封装、继承与多态
- 黑马程序员——Objective-C的封装、继承与多态
- 黑马程序员——Java面向对象之继承与多态笔记
- 解决X64操作系统PL/SQL连接报错问题 make sure you have the 32 bits oracle client installed
- 关于创建Web工程时web.xml文件的部署
- y = x(x>1) ||y = 2*x-1(1<x<10) ||y = 3*x-11(x>=10)
- Android面试题
- python的string模板
- 黑马程序员——继承与多态
- 莫比乌斯反演对gcd问题的优化
- 手动实现NSNotificationCenter功能
- [译]【Storm入门指南】附录B 安装Storm集群
- java中如何统计一段文本每个汉字出现频率
- [译]【Storm入门指南】附录C 安装真实示例
- 100至200的素数
- STS下载路径
- 给出一百分制成绩,要求成绩等级‘A’‘B’‘C’‘D’‘E’。90分以上为A,80~89为B,70~79为C,60~69为D,60分以下为E.