PPT17方法重写与方法重载Java程序设计实战案例教程

上传人:壹****1 文档编号:569505717 上传时间:2024-07-30 格式:PPT 页数:22 大小:1.39MB
返回 下载 相关 举报
PPT17方法重写与方法重载Java程序设计实战案例教程_第1页
第1页 / 共22页
PPT17方法重写与方法重载Java程序设计实战案例教程_第2页
第2页 / 共22页
PPT17方法重写与方法重载Java程序设计实战案例教程_第3页
第3页 / 共22页
PPT17方法重写与方法重载Java程序设计实战案例教程_第4页
第4页 / 共22页
PPT17方法重写与方法重载Java程序设计实战案例教程_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《PPT17方法重写与方法重载Java程序设计实战案例教程》由会员分享,可在线阅读,更多相关《PPT17方法重写与方法重载Java程序设计实战案例教程(22页珍藏版)》请在金锄头文库上搜索。

1、方法重载与方法重写情境引入在生活中,其实我们经常遇到方法重载的情况,例如:同一台打印机,既可以打印黑白照片,也可以打印彩色照片生活中的方法重载3类类方法方法方法参数方法参数方法实现方法实现司机司机 轿车轿车 巴士巴士 火车火车 驾驶驾驶启动、行驶、启动、行驶、等待乘客上车、启动、等待乘客上车、启动、行驶、到站停车、行驶、到站停车、正点发车、行驶、正点发车、行驶、到站停车、到站停车、如果用代码实现,我们需要三个方法,这些方法的方法名称如果用代码实现,我们需要三个方法,这些方法的方法名称相同,参数类型不同相同,参数类型不同 方法重载的代码示例1方法重载并不陌生java.io.PrintStream

2、类的println方法能够打印数据并换行,根据数据类型的不同,有多种实现方式4public class Test public static void main(String args) int i = 0;char c = z;String str = hello;System.out.println(i);System.out.println(c);System.out.println(str);PrintStreamprintln(int)println(char)println(String)方法名相同,参数类型不同方法名相同,参数类型不同调用不同的调用不同的println方法方法方方

3、法法重重载载方法重载的代码示例2java.lang.Math类的max()方法能够从两个数字中取出最大值,它有多种实现方式运行时,Java虚拟机先判断给定参数的类型,然后决定到底执行哪个max()方法5Mathmax(int a,int b)max(float a,float b)max(long a,long b)max(double a,double b)public class Test public static void main(String args) Math.max(1,2);Math.max(1.0F,2.F);Math.max(1.0,2);方方法法重重载载构造方法重载2

4、-1构造方法重载是方法重载的典型示例6public class Teacher7 private String name; / 教师姓名教师姓名private String department = “软件教研室软件教研室”; / 所在教研室所在教研室Public Teacher7(String name) this.name = name; /设定教师姓名设定教师姓名public Teacher7(String name, String department) this.name = name; /设定教师姓名设定教师姓名this.department = department; /设定教师

5、教研室设定教师教研室public String introduction() return 大家好!我是大家好!我是 + department + 的的 + name ;构构造造方方法法重重载载构造方法重载2-2通过调用不同的构造方法来表达对象的多种初始化行为例如:默认情况下,教师来自软件教研室,初始化时,只需提供教师姓名有时,需要提供所在教研室名称及教师姓名7public class Teacher7Test public static void main(String args) Teacher7 teacher1 = new Teacher7(李芳李芳);System.out.print

6、ln(teacher1.introduction();Teacher7 teacher2 = new Teacher7(张欣张欣, “网络教研室网络教研室);System.out.println(teacher2.introduction();大家好!我是软件教研室的李芳大家好!我是软件教研室的李芳大家好!我是网络教研室的张欣大家好!我是网络教研室的张欣方法的重载(overload)在同一个类中,一个以上的方法名称相同,参数列表不同,这种定义方法叫做方法的重载。 8例如: public int summn(int m,int n) return m+n; public int summn(in

7、t m,int n,int k) return m+n+k; 9例如: public int summn(int m,int n) return m+n; public int summn(int x,int y) return x+y; /是重载吗?是重载吗?10不是不是方法的重写在子类中,声明和父类中完全相同(方法名字、参数类型、个数和顺序、返回值类型)的方法,叫做方法的重写。方法的重载和方法的重写,都是实现类的多态性的重要途径。 11重写隐藏了父类中的同名成员。如果子类中成员m是重写的,则在子类中访问m时,访问的是子类中的,而不是父类中的m。12方法重写示例:class Vehicle

8、void run() System.out.println(Vehicle is running); class Bike extends Vehicle overridevoid run() System.out.println(the Bike of Vehicle is running); public static void main(String args) Bike obj = new Bike(); obj.run(); 13 输出结果:输出结果:the Bike of Vehicle is running访问被重写的方法:有时,需要在子类中访问父类中被重写的方法,可使用supe

9、r关键字来实现。super代表当前类的直接父类。 14/定义Animal类classAnimalStringname=动物;voidshout()/定义动物叫的方法System.out.println(动物发出叫声);classDogextendsAnimal/定义Dog类继承动物类Stringname=犬类;voidshout()/重写父类的shout()方法super.shout();/访问父类的成员方法15/定义打印name的方法voidprintName()System.out.println(name=+super.name);/访问父类的成员变量/定义测试类publicclassE

10、xample03publicstaticvoidmain(Stringargs)Dogdog=newDog();/创建一个Dog对象dog.shout();/调用dog对象重写的shout()方法dog.printName();/调用dog对象的的printName()方法16动物发出叫声动物发出叫声name=动物动物使用super关键字访问父类的构造方法:super(参数1,参数2)/定义Animal类classAnimal/定义Animal类有参的构造方法publicAnimal(Stringname)System.out.println(我是一只+name);/定义Dog类继承Anima

11、l类classDogextendsAnimalpublicDog()super(沙皮狗);/调用父类有参的构造方法17/ 定义测试类public class Example04 public static void main(String args) Dog dog = new Dog(); / 实例化子类Dog对象18final关键字final关键字有“无法改变”或者“最终”的含义,因此被final修饰的类、变量和方法将具有以下特性:final修饰的类不能被继承。final修饰的方法不能被子类重写。final修饰的变量(成员变量和局部变量)是常量,只能赋值一次。19final关键字修饰类fi

12、nalclassAnimal/使用final关键字修饰Animal类时,子类会报错classAnimal/方法体为空classDogextendsAnimal/Dog类继承Animal类/方法体为空classExample06/定义测试类publicstaticvoidmain(Stringargs)Dogdog=newDog();/创建Dog类的实例对象20final关键字修饰变量classAnimal/使用final关键字修饰shout()方法后,如果子类重写父类的这个方法,编译会报错/publicfinalvoidshout()publicvoidshout()/程序代码/定义Dog类继承Animal类classDogextendsAnimal/重写Animal类的shout()方法publicvoidshout()/程序代码21/ 定义测试类class Example07 public static void main(String args) Dog dog = new Dog(); / 创建Dog类的实例对象感谢观看

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号