(11)-《Java程序设计》课件11_第1页
(11)-《Java程序设计》课件11_第2页
(11)-《Java程序设计》课件11_第3页
(11)-《Java程序设计》课件11_第4页
(11)-《Java程序设计》课件11_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第三章面向对象程序设计基础3.6继承和覆盖主要内容任务一:为什么要有继承?任务二:一个实例:任务三:重载(overload)和覆盖(override)有什么区别?任务四:super有什么用法?与this有什么区别?任务五:什么是多态?任务一:为什么要有继承?

Ⅰ.世界上的万事万物都可以分别用一个类来代表,那是不是我们编程的时候有多少种事物就需要多少种单独的类呢?这些“类”之间有没有关系呢?能不能通过某种方法把它们联系起来?这就是“继承”,事物之间有分类、归属关系,“类”之间就有继承关系。Ⅱ.继承的优点是可以增强类之间的体系性,增加代码复用,减少代码量。

Ⅲ.Java不支持多继承,即一个子类只能有一个直接父类(extends后只能跟一个父类名);其类似多继承的功能可以通过实现多个接口来完成;Java中所有的类都直接或间接继承自根类Object。Ⅳ.子类可以根据访问控制符继承父类中所有不为private修饰的成员,子类也可以重写(覆盖override)父类的方法,也可以用private修饰和定义只属于自己的成员。任务二:一个实例:任务三:重载(overload)和覆盖(override)有什么区别?

Ⅰ.重载是在一个类的内部可以多次加载一个方法名,区别是所传递的参数个数或类型不同。Ⅱ.覆盖是在一个父类和它的子类之间可以多次重写一个方法名,方法的返回值类型、参数个数、参数类型完全相同,区别是方法实现的内容不同。Ⅲ.相同点是重载和覆盖的方法名都是完全相同的。任务四:super有什么用法?与this有什么区别?

Ⅰ.super可在覆盖的方法中调用父类的方法。Ⅱ.由于构造器不能被继承,而在调用子类的构造器时又必须先调用父类的构造器,所以必须在子类的构造器中用“super(参数);”调用父类的这一类型构造器;只有在父类中存在默认或书写的“super();”无参构造器时,子类构造器中才可以不显式调用该构造器,程序会默认调用。Ⅲ.this表示当前对象的引用,而super表示当前对象的父类的引用。任务五:什么是多态?

Ⅰ.重载体现的就是编译时多态(也叫静态多态),覆盖体现的就是运行时多态(也叫动态多态)。

Ⅱ.现实编程中可以这样创建声明:Students3=newCollegeStudent(6102022018091,wangwu,18,computer);即新建一个子类CollegeStudent的对象,将其声明为父类Student的类型。这样就可以通过s3来即使用父类Student的成员,又使用子类CollegeStudent的成员;这时,如果用s3来使用曾经被覆盖过的方法“doHomework();”,则使用的一定是子类CollegeStudent覆盖以后的新方法。这也叫多态性。小结

继承是利用事物之间的类属关系在编程中形成的类之间的归属关系,可以增加代码的复用性,减少重复代码。子类可以继承父类中除私有外的所有成员,也可以重写父类的某一方法,以实现不同的功能,这叫覆盖。重载存在于类内部,而覆盖存在于父类

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论