深入面向对象的程序设计.ppt

深入面向对象的程序设计.ppt

ID:52511817

大小:234.55 KB

页数:59页

时间:2020-04-09

深入面向对象的程序设计.ppt_第1页
深入面向对象的程序设计.ppt_第2页
深入面向对象的程序设计.ppt_第3页
深入面向对象的程序设计.ppt_第4页
深入面向对象的程序设计.ppt_第5页
资源描述:

《深入面向对象的程序设计.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第六章 深入面向对象的程序设计6.1继承与重载6.1.1继承关系的定义Java中的继承是通过extends关键字来实现的。新定义的类称为子类,它可以从父类那里继承所有的非private的属性和方法作为自己的成员。见例类Employee、CommonEmployee、ManagerEmployee6.1.2属性的继承与隐藏1.属性的继承子类可以继承父类非私有的所有属性。子类可以自己新建一个属于自己的属性。子类的全部属性=父类继承下来的+自己新建的。说明:父类的所有非私有属性实际是各子类都拥有的属性的集合。子类从父类继承属性不需要把父类属性的定义部分再复制一遍。优点:减少程序

2、的维护量。2.属性的隐藏子类从父类继承来的属性变量重新加以定义,称为属性的隐藏。见例6.1TestHide.java6.1.3方法的继承、重载和覆盖1.方法的继承父类的非私有方法作为类的非私有成员,也可以被子类所继承。见例6.2InheritMethod.java2.方法的覆盖在子类中定义与父类相同的方法名称,称为方法的覆盖。见例6.3OverrideMethod.java注:在方法的覆盖中,由于同名方法隶属于不同的类,所以要解决调用如何区分他们的问题,只需要在方法名前面使用不同的类名或不同类的对象名即可。子类在重新定义父类已有的方法时,应保持与父类完全相同的方法头声明,

3、即应与父类有完全相同的方法名、返回值和参数列表。3.方法的重载子类定义同名方法来覆盖父类的方法是面向对象方法中多态技术的一种实现。所谓多态是指同名的不同方法共存。有助于隐藏对象内部的细节,提高程序的抽象程度,是面向对象程序设计中经常使用的方法。实现多态技术的另一种重要的手段就是方法的重载。重载:类对自身已有的同名方法的重新定义。重载与覆盖不同,重载不是子类对父类同名方法的重新定义。方法的重载是同类中同名方法共存的情况,不能像方法的覆盖那样采用类名前缀来区分,而应该采用通过参数列表来区分不同的方法。同类中同名的不同方法需要有不同的参数列表,包括参数顺序的不同和参数类型的不同

4、。6.1.4父类对象与子类对象的使用与转化super和this是常用来指代父类对象和子类对象的关键字。Java系统默认,每个类都缺省地具有null、this和super三个量,所以在任意类中都可以不加说明而直接使用它们。null代表“空”,代表一个什么也没有的“空”值,一般用null来代表尚未存在的对象,在定义一个对象但尚未为其开辟内存单元时可以指定这个对象为null。1.thisthis表示的是当前对象本身,更准确地说,this代表了当前对象的一个引用。对象的引用可以理解为对象的另一个名字,通过引用可以顺利地访问到对象,包括修改对象的属性、调用对象的方法。this通常用

5、来把当前对象的引用作为参数传递给其他的对象或方法。如:classSecretaryEmployeeextendsCommonEmployee{//一般雇员的子类:秘书类SecretaryEmployee(ManagerEmployeeboss){//秘书的构造函数m_EmpSalary=boss.getSalary()/3;//秘书的薪金是上司的三分之一}}//雇员的子类2:主管classManagerEmployeeextendsEmployee{SecretaryEmployeem_Secretary;//主管的秘书ManagerEmployee(Datemgrdat

6、e){//主管的构造函数m_Secretary=newSecretaryEmployee(this);//每新任命一位主管,都为他指派一名秘书}}说明:每新建一个ManagerEmployee对象时,都同时创建一个SecretaryEmployee对象作为其秘书。2.supersuper表示的是当前对象的直接父类对象,是当前对象的直接父类对象的引用。所谓直接父类是相对于当前对象的其他“祖先”类而言。注意:this和super是属于类的所有特指的属性(即类的成员),只能用来代表当前对象和当前对象的父对象,而不能像其他类的属性一样随意引用。下列都是错误的代码:ManagerE

7、mployeeMgrEmp=newManagerEmployee();MgrEmp.this.getMinSalary();//ErrorMgrEmp.super.workDays();//Error3.父类对象与子类对象的转换父类对象和子类对象的转化需要注意如下的原则:子类对象可以被视为是其父类的一个对象;父类对象不能被当作是其某一个子类的对象;如果一个方法的形式参数定义的是父类对象,那么调用这个方法时,可以使用子类对象作为实际参数;如果父类对象引用指向的实际是一个子类对象,那么这个父类对象的引用可以用强制类型转换成子类对象

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

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

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