JAVA面向对象编程继承性和多态性课件.ppt

JAVA面向对象编程继承性和多态性课件.ppt

ID:57057942

大小:207.50 KB

页数:30页

时间:2020-07-30

JAVA面向对象编程继承性和多态性课件.ppt_第1页
JAVA面向对象编程继承性和多态性课件.ppt_第2页
JAVA面向对象编程继承性和多态性课件.ppt_第3页
JAVA面向对象编程继承性和多态性课件.ppt_第4页
JAVA面向对象编程继承性和多态性课件.ppt_第5页
资源描述:

《JAVA面向对象编程继承性和多态性课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、1主要内容4.1继承性派生类的定义super关键字protected和final关键字4.2多态性4.3抽象类和接口抽象类接口4.4初始化块继承性&多态性24.1继承性类具有继承性,子类对父类的继承关系体现了现实世界中特殊和一般的关系。通过继承可以更有效地组织程序结构,明确类间关系,并充分利用已有的类来完成更复杂、深入的开发。4.1.1派生类的定义Java中的所有类都是java.lang.Object类的子类。Java语言中派生类的定义格式如下:示例:参看例4.1class<子类>extends<唯一的父类名>{<类定义体>}继承性&多态性34.1.2super关键字1.数据成

2、员的隐藏数据成员的隐藏是指在子类中重新定义一个与父类中已定义的数据成员名完全相同的数据成员,即子类拥有了两个相同名字的数据成员,一个是继承父类的,另一个是自己定义的。当子类要操作继承自父类的同名数据成员时,可使用关键字super引导。2.成员方法的覆盖子类可以重新定义与父类格式完全相同(包括方法名、方法形参的个数和类型、方法返回值的类型)的成员方法,实现对父类方法的覆盖。继承性&多态性4关于方法覆盖只有当实例方法能被访问时,才能进行方法覆盖。私有方法不能被覆盖.静态方法(类方法)能被继承,但不能被覆盖。子类在重新定义父类已有的方法时,应保持与父类完全相同的方法名、返回值类型和参

3、数列表,否则就不是方法的覆盖,而是子类定义自己特有的方法,与父类的方法无关。继承性&多态性53.super关键字super表示的是当前对象的直接父类对象,是当前对象的直接父类对象的引用。super的使用方法有三种:(1)访问直接父类隐藏的数据成员,其使用形式如下:super.数据成员(2)调用直接父类中被覆盖的成员方法,其使用形式如下:super.成员方法(参数)(3)调用直接父类的构造方法,其使用形式如下:super(参数)示例:参看例4.2继承性&多态性63.super关键字子类中一定要调用父类的构造方法1、子类的构造方法必须调用父类的构造方法2、子类可以在自己的构造函数中

4、用super(argument_list)调用父类的构造方法3、如果子类的构造函数中没有显式地调用父类的构造方法,系统将自动调用父类无参数的构造方法,此时如果父类中不存在无参数构造函数的话,编译会出差错4、如果子类构造函数调用super(argument_list),这个语句必须写在构造函数的第一行继承性&多态性74.1.3protected和final关键字1.protected关键字用protected修饰的成员变量可以被三种类所引:该类自身、与它在同一个包中的其它类及在其它包中的该类的子类。2.final关键字使用final关键字可以定义常量。定义类时,在class关键字

5、前加关键字final,表示此类是最终类,不能被其它类继承,不能做父类。用final修饰成员方法,表示此方法不能被它的子类覆盖。继承性&多态性83.native关键字native修饰的方法称为本地方法,此方法使用的目的是为了将其它语言(例如,C、C++、FORTRAN、汇编等)嵌入到Java语言中。这样可以充分利用已经存在的其它语言的程序功能模块,避免重复编程。继承性&多态性94.2多态性多态是面向对象程序设计语言的一个重要特性,在Java中,可以在同一类或不同类中定义名称相同但是操作不同的多个方法。在Java语言中,多态性分为编译时多态性和运行时多态性。继承性&多态性10编译时

6、的多态性通过方法重载实现。Java虚拟机根据传递给方法的参数个数和类型决定调用哪个重载方法。例如,java的打印函数对应的具体情况和操作有多种,如实数打印、整数打印、字符打印等。为了使打印功能完整,实际上定义了若干个名字都叫print的方法,每个方法用来完成一种不同于其他方法的具体打印操作,处理一种具体的打印情况。继承性&多态性例:TestOverride.java1:publicclassTestOverride2:{3:publicstaticvoidmain(Stringargs[])4:{5:D200-Cardmy200=newD200-Card(12345678,12

7、34,50.0,″200″);6:if(my200.performDial(12345678,1234))7:System.out.println(″拨打电话后剩余金额为:″+my200.getBalance());8:if(my200.performDial())9:System.out.println(″拨打电话后剩余金额为:″+my200.getBalance());10:}11:}继承性&多态性51:booleanperformDial()52:{53:if(!connected)5

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

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

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