- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第06讲Java继承、多态
继承、多态 继承、 多态 面向对象的特性--继承 继承的概念 实现继承(超类和子类) 多态 动态绑定 面向对象的特性--继承 通过继承实现代码复用。继承而得到的类称为子类,被继承的类称为父类。子类可以重写父类的方法,及命名与父类同名的成员变量。 Java中所有的类都是通过直接或间接地继承java.lang.Object类得到的。 Java不支持多重继承,即一个类从多个超类派生的能力。 继承关系 超类(Car.java) 运用继承,你能够创建一个通用超类,它定义了一系列相关项目的一般特性。 将各类汽车的公共属性和方法都纳入Car类中 公共属性:排气量、最高时速、当前时速等 公共方法:启动、加速等 子类(Porsche2.java ) 子类是超类的扩展版本,它继承了超类定义的所有实例变量和方法,并且为它自己增添了独特的元素,如: Porsche2扩展Car类,增加了Porsche2特定属性:涡轮 、 二氧化碳 public class Porsche2 extends Car { // add attributes private int turbos = 2; rivate boolean nos; …… 方法重写(Porsche2.java ) 子类通过隐藏父类的成员变量和重写父类的方法,可以把父类的状态和行为改变为自身的状态和行为。 Porsche2重写了Car中的accelerate 、 decelerate 方法,其将会覆盖Car中相同签名方法 方法重写原则 ◇ 方法重写时应遵循的原则: 1)改写后的方法不能比被重写的方法有更严格的访问权限(可以相同)。 2)改写后的方法不能比重写的方法产生更多的例外(异常)。 super关键字 super与this类似,this变量引用类实例,super则引用超类实例,可以用super引用超类的方法和变量,super方法则引用超类的构造方法 子类通过super方法决定调用超类的那个构造方法 public Porsche2() { super( Porsche, 450, 220, 2, Yellow, 15, 5, Car.TIPTRONIC ); ……. } super关键字 如果子类构造方法中既未显式调用父类构造方法,而父类中又没有默认的构造方法,则编译出错。 super方法只能用于构造方法的第一条语句(思考:为什么?) super 与 this区别 super() /this() 构造函数 super.MethodName() this.MethodName() 调用方法 Super.PropertyName this. PropertyName 调用属性 This可以作为参数传入,super则不可以 class A{ protected int i = 0;} class B extends A{ public void Add(A a){ for(int i = 0;i10;i++){ a.i++; System.out.println(a.i); } } public void Add(){ Add(this); //this 作为一个对象传入,允许 //Add(super); //不允许 } public static void main(String argc[]){ B b = new B(); b.Add(); }} final 关键字 final 关键字可以修饰类、类的成员变量,变量,和成员方法,但final 的作用不同。 1) final 修饰成员变量则成为实例常量(上一章) 2) final 修饰成员方法则该方法不能被子类重写 3) final修饰类,则类不能被继承 面向对象的特性—多态 子类的对象可以替代父类的对象使用 一个超类变量可以实际引用不同子类的对象 Car myCar; myCar=new Porsche2(); 多态 引用子类对象的超类变量不能再访问子类中添加的属性和方法 Car myCar=new Porsche2(); myCar. engageTurbos() ;//Error 但可以访问超类中声明被子类覆盖(重写)的方法! myCar. accelerate () ; //提问? myCar. accelerate()执行的哪个方法?为什么 动态绑定 java运行时系统根据调用该方法的实例,来决定调用哪个方法。对子类的一个实例,如果子类重写了父类的方法,则运行时系统调用子类的方法;如果子类继承了父类的方法(未重写),则运行时系统调用父类的方法。 其中有这样的两个原则: 1、访问一
您可能关注的文档
- 小五方程的解法.doc
- 机床夹具论文.doc
- winCE下Un.doc
- 《市场营销与品牌》.ppt
- 文件类型解释.doc
- 水资源在人类生活中的应用.doc
- 中考化学探究性试题.doc
- 2.1城市发展与城市化课件.ppt
- 2009年民评动员会讲话.doc
- 天大电信09排名.doc
- 四川省德阳市罗江中学2025届高三考前热身化学试卷含解析.doc
- 山东省枣庄现代实验学校2025届高三下学期第五次调研考试化学试题含解析.doc
- 吉林省长春市十一高中等九校教育联盟2025届高三一诊考试生物试卷含解析.doc
- 2025届江苏省盐城市伍佑中学高考仿真模拟化学试卷含解析.doc
- 2025届广西贺州中学高考冲刺押题(最后一卷)生物试卷含解析.doc
- 安徽省池州市贵池区2025届高三第一次模拟考试生物试卷含解析.doc
- 宁夏银川一中2025届高三(最后冲刺)化学试卷含解析.doc
- 广东省广州市增城区四校联考2025届高考压轴卷化学试卷含解析.doc
- 2025届邯郸市第一中学高考生物必刷试卷含解析.doc
- 2025届安徽省安庆市石化第一中学高考仿真卷化学试卷含解析.doc
最近下载
- 驶向2030:全球新能源汽车产业发展格局与展望-麦肯锡+中国电动汽车百人会.pdf
- 基于PBL模式的高中生物学教材“问题探讨”栏目教学设计研究.pdf
- 2023年-2024年小学语文教师综合业务考试题库(含答案) .pdf VIP
- 《公路安全保护条例》条文释义.docx
- 小学数学五年级下册期末测试卷【能力提升】.docx
- 15J403-1---楼梯栏杆栏板(一).docx
- 2024年行政执法人员行政执法资格证考试题库及答案.docx
- 造福吧友系列数电习题答案第5章.pdf
- 加工木材及提取樟脑油项目环评(新版环评)环境影响报告表.pdf VIP
- 单片机应用技术课程思政教学设计案例.pdf VIP
文档评论(0)