JAVA面向对象编程第四章继承性和多态性课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《JAVA面向对象编程第四章继承性和多态性课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 面向 对象 编程 第四 继承 多态性 课件
- 资源描述:
-
1、 第第4 4章继承性和多态性章继承性和多态性2主要内容主要内容n4.1 继承性n派生类的定义nsuper关键字nprotected和final关键字n4.2 多态性n4.3 抽象类和接口n抽象类n接口n4.4 初始化块继承性&多态性34.1 继承性继承性n类具有继承性,子类对父类的继承关系子类对父类的继承关系体现了现实世界中特殊和一般的关系。通过继承可以更有效地组织程序结构,明确类间关系,并充分利用已有的类来完成更复杂、深入的开发。n4.1.1 派生类的定义nJava中的所有类都是java.lang.Object类的子类。nJava语言中派生类的定义格式如下:n示例:参看例4.1class c
2、lass extendsextends 继承性&多态性44.1.2 super关键字关键字n1.数据成员的隐藏n数据成员的隐藏是指在子类中重新定义一个与父类中已定义的数据成员名完全相同的数据成员,即子类拥有了两个相同名字的数据成员,一个是继承父类的,另一个是自己定义的。n当子类要操作继承自父类的同名数据成员时,可使用关键字super引导。n2.成员方法的覆盖n子类可以重新定义与父类格式完全相同(包括方法名、方法形参的个数和类型、方法返回值的类型)的成员方法,实现对父类方法的覆盖。继承性&多态性5关于方法覆盖关于方法覆盖n只有当实例方法能被访问时,才能进行方法覆盖。私有方法私有方法不能被覆盖.n
3、静态方法静态方法(类方法)能被继承,但不能被覆盖。n子类在重新定义父类已有的方法时,应保持与父类完全相同的方法名、返回值相同的方法名、返回值类型和参数列表类型和参数列表,否则就不是方法的覆盖,而是子类定义自己特有的方法,与父类的方法无关。继承性&多态性63.super关键字关键字nsuper表示的是当前对象的直接父类对象,是当前对象的直接父类对象的引用。nsuper的使用方法有三种:n(1)访问直接父类隐藏的数据成员,其使用形式如下:nsuper.数据成员n(2)调用直接父类中被覆盖的成员方法,其使用形式如下:nsuper.成员方法(参数)n(3)调用直接父类的构造方法,其使用形式如下:nsu
4、per(参数)n示例:参看例4.2继承性&多态性73.super关键字关键字n子类中一定要调用父类的构造方法 1、子类的构造方法必须调用父类的构造方法构造方法2、子类可以在自己的构造函数中用super(argument_list)调用父类的构造方法构造方法3、如果子类的构造函数中没有显式地调用父类的构造方法构造方法,系统将自动调用父类无参数的构造方法构造方法,此时如果父类中不存在无参数构造函数的话,编译会出 差错4、如果子类构造函数调用super(argument_list),这个语句必须写在构造函数的第一行继承性&多态性84.1.3 protected和和final关键字关键字n1.prot
5、ected关键字n用protected修饰的成员变量可以被三种类所引:该类自身、与它在同一个包中的其它类及在其它包中的该类的子类。n2.final关键字 n使用final关键字可以定义常量。n定义类时,在class关键字前加关键字final,表示此类是最终类,不能被其它类继承,不能做父类。n用final修饰成员方法,表示此方法不能被它的子类覆盖。继承性&多态性93.native关键字关键字nnative修饰的方法称为本地方法,此方法使用的目的是为了将其它语言(例如,C、C+、FORTRAN、汇编等)嵌入到Java语言中。这样可以充分利用已经存在的其它语言的程序功能模块,避免重复编程。继承性&多
6、态性104.2 多态性多态性n多态是面向对象程序设计语言的一个重要特性,在Java中,可以在同一类或不同类中定义名称相同但是操作不同的多个方法。n在Java语言中,多态性分为编译时多态性编译时多态性和运运行时多态性行时多态性。继承性&多态性11n编译时的多态性编译时的多态性通过方法重载实现。Java虚拟机根据传递给方法的参数个数和类型决定调用哪个重载方法。n例如,java的打印函数对应的具体情况和操作有多种,如实数打印、整数打印、字符打印等。为了使打印功能完整,实际上定义了若干个名字都叫print的方法,每个方法用来完成一种不同于其他方法的具体打印操作,处理一种具体的打印情况。继承性&多态性例
7、:TestOverride.java1:public class TestOverride2:3:public static void main(String args)4:5:D200-Card my200=new D200-Card(12345678,1234,50.0,200);6:if(my200.performDial(12345678,1234)7:System.out.println(拨打电话后剩余金额为:+my200.getBalance();8:if(my200.performDial()9:System.out.println(拨打电话后剩余金额为:+my200.getBa
8、lance();10:11:继承性&多态性51:boolean performDial()52:53:if(!connected)54:return false;55:if(balance (0.5+additoryFee)56:57:balance-=(0.5+additoryFee);58:return true;59:60:else61:return false;62:63:boolean performDial(long cn,int pass)64:65:if(performConnection(cn,pass)66:return performDial();67:else68:re
9、turn false;69:70:double getBalance()71:72:if(connected)73:return balance;74:else75:return-1;76:77:40:class D200-Card extends Number-PhoneCard41:44:D200-Card(long cn,int pw,double b,String c)45:46:cardNumber=cn;/创建对象时设置卡号和密码47:password=pw;48:balance=b;49:connectNumber=c;50:继承性&多态性16n运行时的多态性运行时的多态性是Ja
10、va多态性的最重要的体现,在Java语言的继承关系中,子类对象与父类对象之间有一个重要特性:在任何需要父类对象的地方,都可以使用子类对象来代替,即子类对象可以作为父类对象来使用。一个对象可以通过引用子类的实例来调用子类的方法,通常,方法在父类中定义,在子类中覆盖,子类中调用哪个方法是在运行时决定的,取决于对象的类型,称为运行时的多态性。n示例:参看例4.3继承性&多态性174.3 抽象类和接口抽象类和接口 n抽象类体现数据抽象的思想,是实现程序多态性的一种手段。接口则是Java中实现多重继承的唯一途径。n4.3.1 抽象类n抽象类的作用在于将许多有关的类组织在一起,提供一个公共的类,即抽象类,
展开阅读全文