3.8.2 多态课件讲解.pptx

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

单元3面向对象程序设计3.8继承与多态程序设计

多态的概念了解多态从字面上理解,多态就是一种类型表现出的多种状态。多态性是面向对象编程的一个重要特征,它是指在父类中定义的属性和方法被子类继承之后,可以具有不同的数据类型或表现出不同的行为,这使得同一个属性或方法在父类及其各个子类中具有不同的含义。

多态的概念了解多态从字面上理解,多态就是一种类型表现出的多种状态。多态性是面向对象编程的一个重要特征,它是指在父类中定义的属性和方法被子类继承之后,可以具有不同的数据类型或表现出不同的行为,这使得同一个属性或方法在父类及其各个子类中具有不同的含义。Animaleat()eat()Dogeat()动物类Animal属性:food食物行为:makeNoise():动物发出声音的行为eat():动物遇到食物时的行为CatRabbit

多态的优点了解多态1.消除类型之间的耦合关系2.可替换性3.可扩充性4.接口性5.灵活性6.简化性

为什么需要多态深入多态在教师类的基础上,开发一个类DeanOffice代表教务部门,负责对各教师进行评估考核,评估内容包括:1、教师自我介绍2、教师授课publicclassDeanOffice{publicvoidjudge(JavaTeachert){t.introduction();t.giveLesson();}publicvoidjudge(PythonTeachert){t.introduction();t.giveLesson();}publicstaticvoidmain(String[]args){DeanOfficed=newDeanOffice();d.judge(newJavaTeacher(王林,苏工院));d.judge(newPythonTeacher(张明,职业大学));}}控制台输出

为什么需要多态深入多态现在教师类,要增加一种新子类类型:DBTeacher,该子类类型的教师专门负责教授数据库,要求如下:属性:姓名、所属学校方法:授课(启动MySQL、实施理论课授课)、自我介绍同时,教务处也负责对这类教师进行评估考核。这个解决方案有什么弊端吗每增加一种新的教师子类,都要修改教务部门的类,还需要再增加相应的judge(评估)方法,代码的可扩展性及可维护性极差第一种解决方案,需要如下两个步骤:建立DBTeacher类修改教务部门DeanOffice类,再增加方法:judge(DBTeachert)??

多态的实现第二种解决方案——使用多态publicclassDeanOffice{publicvoidjudge(Teachert){t.introduction();t.giveLesson();}publicstaticvoidmain(String[]args){DeanOfficed=newDeanOffice();d.judge(newJavaTeacher(王林,苏工院));d.judge(newPythonTeacher(张明,职业大学));d.judge(newDBTeacher(“欧阳菲”,“经贸学院));}}可以接收子类类型根据实际创建的对象类型调用相应方法控制台输出使用多态之后,当需要增加新的子类类型时,无需更改教务部门类,程序的可扩展性及可维护性增强

多态实现的三个必要条件多态的实现1.继承:在多态中必须存在有继承关系的子类和父类2.重写:子类对父类中某些方法进行重新定义,在调用这些方法时就会调用子类的方法3.向上转型:子类的引用赋给父类对象向上转型:父类父类对象=子类实例1.父类有的方法,都可以调用,如果被子类重写了,则会调用子类的方法。2.父类没有的方法,而子类存在,则不能调用。3.向上转型只对方法有影响,对属性没影响。属性不存在重写。向下转型:父类父类对象=子类实例向下转型之前一定要进行向上转型!否则在转型时会出现ClassCastException异常(类型转换异常–运行时异常)

多态的应用对象类型引用转换表现在父类对象与子类对象之间的转型上。具体体现在:向上转型还是向下转型。轿车有两种类型:手动挡和自动挡。对于轿车而言,至少有油门踏板和刹车踏板。如果是手动挡的汽车,它会比父类轿车多一个离合踏板。请编程说明作为子类的手动挡汽车此时能否调取它自己的离合踏板?publicclassCar{publicintpedalAuto=2;//定义一个用public修饰的成员变量

文档评论(0)

vermonth155-2娟 + 关注
实名认证
内容提供者

专注ppt课件

版权声明书
用户编号:8046135067000064

1亿VIP精品文档

相关文档