java面向对象编程-继承课件.ppt

上传人:飞****2 文档编号:69262969 上传时间:2023-01-01 格式:PPT 页数:29 大小:92.50KB
返回 下载 相关 举报
java面向对象编程-继承课件.ppt_第1页
第1页 / 共29页
java面向对象编程-继承课件.ppt_第2页
第2页 / 共29页
点击查看更多>>
资源描述

《java面向对象编程-继承课件.ppt》由会员分享,可在线阅读,更多相关《java面向对象编程-继承课件.ppt(29页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、类的继承Employee类类Employee+name:String+salary:double+birthDate:Date+getDetails():String public class Employee public String name;public double salary;public Date birthDate;public String getDetails().Manager类类Manager+name:String+salary:double+birthDate:Date+department:String+getDetails():String public cl

2、ass Manager public String name;public double salary;public Date birthDate;public String department;public String getDetails().子类化子类化Employee+name:String+salary:double+birthDate:Date+getDetails():StringManager+department:String public class Employee public String name;public double salary;public Date

3、 birthDate;public String getDetails().public class Manager extends Employee public String department;1继承的定义 所谓类继承就是子类继承父类的成员变量和方法作为自己的成员变量和方法,就好象它们是在子类中直接声明一样。当然,子类能否继承父类的变量和方法还有一定的限制。下面对其进行详细介绍。2子类和父类在同一包中的继承性 如果子类和父类在同一个包中,那么子类自然地继承了其父类中不是private的成员变量作为自己的成员变量,并且也自然地继承了父类中不是private的方法作为自己的方法。继承的成员

4、变量以及方法的访问权限保持不变。3子类和父类不在同一包中的继承性 如果子类和父类不在同一个包中,那么子类只能继承父类的protected、public成员变量和方法,继承的成员或方法的访问权限不变。如果子类和父类不在同一个包里,子类不能继承父类的默认变量和默认方法。单继承单继承(Java只支持单继承只支持单继承)当类只从一个类继承时,称为单继承当类只从一个类继承时,称为单继承语法:语法:class extends *实例实例import java.util.Date;class Employee public String name;public double salary;public Da

5、te birthDate;public String getDetails()return name+salary;class Manager extends Employee public String department;public class Test1 public static void main(String args)Manager x=new Manager();x.name=Jack;x.salary=5000;System.out.println(x.getDetails();说明说明子类可以继承超类中非子类可以继承超类中非private的方法和属的方法和属性性不必重新

6、定义不必重新定义子类中可以增加新的属性和方法子类中可以增加新的属性和方法继承的目的:程序代码重用,减少冗余继承的目的:程序代码重用,减少冗余5.1.2 方法的重载方法的重载(overload)一个类中有多个同名的方法一个类中有多个同名的方法 如:如:Math类中的类中的min()方法方法条件条件(满足其一满足其一):l参数的个数不同参数的个数不同l参数的类型不同参数的类型不同如果两个方法仅返回值不同,不是重载,如果两个方法仅返回值不同,不是重载,会报错会报错思考思考错在哪儿?错在哪儿?class Test public void printtest()System.out.println(ss

7、);public int printtest()return 1;例例5-1:对矩形进行初始化:对矩形进行初始化方法方法2:左上角和右下角的点:左上角和右下角的点MyRect buildRect(Point topLeft,Point bottomRight)x1=topLeft.x;y1=topLeft.y;x2=bottomRight.x;y2=bottomRight.y;return this;例例5-1:对矩形进行初始化:对矩形进行初始化方法方法3:左上角的点和矩形的宽和高:左上角的点和矩形的宽和高MyRect buildRect(Point topLeft,int w,int h)x

8、1=topLeft.x;y1=topLeft.y;x2=x1+w;y2=y1-h;return this;例例5-1:对矩形进行初始化:对矩形进行初始化方法方法1:左上角和右下角坐标:左上角和右下角坐标MyRect buildRect(int x1,int y1,int x2,int y2)this.x1=x1;this.y1=y1;this.x2=x2;this.y2=y2;return this;构造函数的重载构造函数的重载一个类可以有多个构造函数一个类可以有多个构造函数,叫做构造函数的重载。叫做构造函数的重载。条件条件(满足其一)(满足其一)p参数的参数的个数个数不同不同p参数的参数的类

9、型类型不同不同修改补充例修改补充例1 public Person(String name,int age,double height,double weight)this.name=name;this.age=age;this.height=height;this.weight=weight;public Person(String name,int age)this.name=name;this.age=age;this.height=1.7;this.weight=70;public Person(String name)this.name=name;this.age=25;this.he

10、ight=1.5;this.weight=50;另一种写法另一种写法构造函数的相互调用构造函数的相互调用public Person(String name,int age,double height,double weight)this.name=name;this.age=age;this.height=height;this.weight=weight;public Person(String name,int age)this(name,age,1.7,70);public Person(String name)this(name,25,1.5,50);5.1.3 方法的覆盖(overr

11、ide)覆盖方法覆盖方法子类可以修改从父类继承的行为子类可以修改从父类继承的行为子类可以创建与父类的方法不同功能的方子类可以创建与父类的方法不同功能的方法,但下面是相同的:法,但下面是相同的:u方法名方法名u返回类型返回类型u参数列表参数列表例例1import java.util.Date;class Employee public String name;public double salary;public Date birthDate;public String getDetails()return“name:”+name+“n”+“salary:”+salary;class Manag

12、er extends Employee public String department;public String getDetails()return name:+name+n+salary:+salary+n+Manager of:+department;实例实例public class Test1 public static void main(String args)Employee e=new Employee();e.name=Mary;e.salary=3000;System.out.println(e.getDetails();Manager x=new Manager();

13、x.name=Jack;x.salary=5000;x.department=Infor;System.out.println(x.getDetails();例例2class Citizen public String personID=“000000000000000000”;public String name=“无名氏无名氏”;public String sex=“男男”;public String birthday=“1900.1.1”;public void display()class Student extends Citizen public String studentID;

14、public String registerTime;public int init_result;public void display()super.display();/执行父类的执行父类的display()方法方法 /子类中需要显示的更多的内容子类中需要显示的更多的内容 super关键字super关键字关键字往往在覆盖方法时,真正的目标不是代替往往在覆盖方法时,真正的目标不是代替现有的行为,而是在某些方面扩展那个行现有的行为,而是在某些方面扩展那个行为为类中使用类中使用super来指向父类的成员,包括数来指向父类的成员,包括数据和方法据和方法super的三种使用方式的三种使用方式sup

15、er.方法名方法名(参数表参数表);调用父类的方法调用父类的方法super.成员变量名成员变量名 访问父类的成员变量访问父类的成员变量super(参数表参数表);调用父类的构造函数调用父类的构造函数实例实例import java.util.Date;class Employee private String name;private double salary;private Date birthDate;public String getDetails()return“name:”+name+“n”+“salary:”+salary;class Manager extends Employe

16、e private String department;public String getDetails()return super.getDetails()+n+Manager of:+department;调用父类构造函数调用父类构造函数要调用父类构造函数,必须在子类构造函数要调用父类构造函数,必须在子类构造函数的的第一行第一行使用使用super关键字关键字要调用特定的父类构造函数,必须为要调用特定的父类构造函数,必须为super提提供参数供参数如果没有如果没有this或或super调用,编译器会插入一调用,编译器会插入一个对父类无参数构造函数的隐含调用:个对父类无参数构造函数的隐含调用:

17、super()class Employee private String name;/姓名姓名 private double salary;/工资工资 public Employee(String n,double s)name=n;salary=s;public Employee(String n)name=n;class Manager extends Employee private String department;/部门部门 public Manager(String name,double salary,String dept)super(name,salary);departm

18、ent=dept;public Manager(String name,String dept)super(name);department=dept;public Manager(String dept)department=dept;哪儿有问题?哪儿有问题?public class Test1 public static void main(String args)Manager x=new Manager(ss,4000,rr);作业作业定义一个形状类定义一个形状类CShape,在此基础上派生,在此基础上派生出出矩形类矩形类CRectangle和圆类和圆类CCircle,两者都有两者都有GetArea()函数计算对象的面积。试编写一函数计算对象的面积。试编写一个完整的程序。个完整的程序。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁