06-面向对象:继承和多态.ppt

06-面向对象:继承和多态.ppt

ID:48706615

大小:1.73 MB

页数:43页

时间:2020-01-26

06-面向对象:继承和多态.ppt_第1页
06-面向对象:继承和多态.ppt_第2页
06-面向对象:继承和多态.ppt_第3页
06-面向对象:继承和多态.ppt_第4页
06-面向对象:继承和多态.ppt_第5页
资源描述:

《06-面向对象:继承和多态.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、《Java程序设计》重庆交大上一章内容回顾5.面向对象:构造方法,封装与隐藏构造器理解构造器构造器的重载封装理解封装访问控制符包(package)包及其作用package和import语句Java的常用包7/18/20216.面向对象:继承和多态6.1类的继承6.1.1继承的特点6.1.2重写父类的方法6.1.3父类实例的super引用6.1.4调用父类的构造器6.2多态6.2.1多态性6.2.2引用变量的强制类型转换6.2.3instanceof运算符6.3继承和组合6.4课后作业7/18/20216.1类的继承6.1.1继承的特点继承是面向对象三大特征之一

2、,也是实现软件复用的重要手段。Java的继承通过关键字extends来实现,实现继承的类称为子类,被继承的类称为基类、超类、父类。父类与子类的关系,是一种一般和特殊的关系。例如水果和苹果的关系,苹果继承了水果,苹果是水果的子类,则苹果是一种特殊的水果。因为子类是一种特殊的父类,因此父类包含的范围总比子类包含的范围要大,因此父类是大类,子类是小类。Java的继承是单继承,每个类最多只有一个直接父类。7/18/20216.1类的继承6.1.1继承的特点Java里子类继承父类的语法格式如下:[修饰符]classsubclassextendssuperclass{//

3、类定义部分}“extends”的含义是子类扩展了父类,将可以获得父类的全部属性和方法,但子类不能获得父类构造方法。以下程序示范了子类继承父类的特点。7/18/20216.1类的继承6.1.1继承的特点程序清单:chapter06test1Fruit.java、Apple.javapackagechapter06.test1;publicclassFruit{publicdoubleweight;publicvoidinfo(){System.out.println("我是一个水果!重"+weight+"g!");}}packagechapter06.tes

4、t1;publicclassAppleextendsFruit{publicstaticvoidmain(String[]args){//创建Apple的对象Applea=newApple();//Apple对象本身没有weight属性。//因为Apple的父类有weight属性,也可以访问Apple对象的属性a.weight=56;//调用Apple对象的info方法a.info();}}该程序的输出结果为:我是一个水果!重56.0g!7/18/20216.1类的继承6.1.1继承的特点7/18/20216.1类的继承6.1.2重写父类的方法子类扩展了父类,

5、子类是一个特殊的父类。大部分时候,子类总是以父类为基础,额外增加新的属性和方法。但有一种情况例外:子类需要重写父类的方法。例如,鸟类都包含了飞翔(fly)的方法,其中鸵鸟是一种特殊的鸟类,因此鸵鸟应该是鸟的子类,因此它也将从鸟类获得飞翔方法,但这个飞翔方法明显不适合鸵鸟,因此,鸵鸟需要重写鸟类的方法。下面程序先定义一个Bird类。7/18/20216.1类的继承6.1.2重写父类的方法程序清单:chapter06test1Bird.javapackagechapter06.test1;publicclassBird{//Bird类的fly方法publicv

6、oidfly(){System.out.println("我在天空里自由自在地飞翔...");}}7/18/20216.1类的继承6.1.2重写父类的方法下面再定义一个Ostrich类,这个类扩展了Bird类,但重写了Bird类的fly方法。程序清单:chapter06test1Ostrich.javapackagechapter06.test1;publicclassOstrichextendsBird{//重写Bird类的fly方法publicvoidfly(){System.out.println("我只能在地上奔跑...");}publicstat

7、icvoidmain(String[]args){//创建Ostrich对象Ostrichos=newOstrich();//执行Ostrich对象的fly方法,将输出"我只能在地上奔跑..."os.fly();}}该程序的输出结果为:我只能在地上奔跑...7/18/20216.1类的继承6.1.2重写父类的方法这种子类包含父类同名方法的现象被称为方法重写,也称为方法覆盖(Override)。可以说子类重写了父类的方法,也可以说子类覆盖了父类的方法。方法的重写要遵循“两同两小一大”。两同:方法名相同;形参列表相同。两小:子类方法返回值类型应比父类方法返回值类型

8、更小(即子类)或相同;子类方法声明抛出

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。