Java2程序设计 教学课件 ppt 作者 刘英华 编著 Java4_5_6_7

上传人:E**** 文档编号:89155860 上传时间:2019-05-19 格式:PPT 页数:93 大小:383.01KB
返回 下载 相关 举报
Java2程序设计 教学课件 ppt 作者 刘英华 编著 Java4_5_6_7_第1页
第1页 / 共93页
Java2程序设计 教学课件 ppt 作者 刘英华 编著 Java4_5_6_7_第2页
第2页 / 共93页
Java2程序设计 教学课件 ppt 作者 刘英华 编著 Java4_5_6_7_第3页
第3页 / 共93页
Java2程序设计 教学课件 ppt 作者 刘英华 编著 Java4_5_6_7_第4页
第4页 / 共93页
Java2程序设计 教学课件 ppt 作者 刘英华 编著 Java4_5_6_7_第5页
第5页 / 共93页
点击查看更多>>
资源描述

《Java2程序设计 教学课件 ppt 作者 刘英华 编著 Java4_5_6_7》由会员分享,可在线阅读,更多相关《Java2程序设计 教学课件 ppt 作者 刘英华 编著 Java4_5_6_7(93页珍藏版)》请在金锄头文库上搜索。

1、,4.1 继承的基础 4.2 super关键字 4.3 多层继承 4.4 方法的重写(多态与继承) 4.5 动态方法调度 4.6 abstact关键字 4.7 final关键字 4.8 本章小结,第 4 章 继承,【 4.1 继承的基础】,在Java中,我们把“学生”类称为超类,“大学生”类 称为子类。在实际应用中为了更符合自然现象,超类也 可以称为基类或父类,相应的也可以把子类称为派生类。 在本书中,我们采用直译的方法把superclass翻译为超 类,把subclass翻译为子类。一个超类可以有多个子类, 每个子类是唯一的,与其他子类互不相同,子类又可以 作为其他子类的超类。,protec

2、ted关键字说明的成员变量和成员方法只能被其子类使用,也就是说,只有子类才能继承使用其超类中被protected关键字修饰的成员变量和成员方法。,【 4.2 super关键字 】,super关键字常见的用法有两种,一种是调用超类的构造方法,另一种是当子类定义了和超类同名的成员变量或成员方法,需要super关键字调用超类的成员变量和成员方法。,【 4.3 多层继承 】,Java支持多层继承,例如B类继承了A类,我们称B类为子类,A类是超类。如果C类继承了B类,则相对C类来说,B类是超类。这就好像某人在父亲面前是儿子,在自己儿子面前是父亲,拥有双重身份。,【 4.4 方法的重写(多态与继承)】,注

3、意: 方法重写和方法重载的区别: 1、重写不能改变参数列表(包括参数个数,参数数据类型和参数的位置);重载必须改变参数列表; 2、重写不能改变返回值类型,重载可以改变返回值类型; 3、重写方法不能有比被重写方法限制更严格的访问修饰符,重载可以改变访问修饰符。,方法重写,是指在子类中对超类的某方法进行重新定义, 其子类的该方法名以及参数位置和个数均与超类相同,从而 在调用子类的该方法时,不会执行父类的方法。,注意: 1构造方法不能被重写,可以被重载。 2用final(详见章节4.7)、private、static修饰的方法不能被重写,可以被重载。 3方法的重载能在同一个类中或者子类中进行。 4方

4、法的重写能在实现接口(详见第5章)的具体类中或者子类中进行。 5子类里的方法与超类里用final、private、static关键字修饰的方法即使方法名相同,也不是重写,有可能是方法重载,或者是父类没有而子类所有的方法。,【 4.5 动态方法调度 】,动态方法调度是一种在调用方法重写时实现了运行时的Java多态性,而不是编译时的多态性。动态方法调度告诉Java如何实现运行时的多态性,因此它是一种重要的运行机制。,【 4.6 abstact关键字 】,“抽象”从字面上就是不具体的意思。所以,抽象类就表示该类中肯定有类体为空,没有具体实现的方法。抽象方法就表示该方法没有具体实现某种操作,只是一个空

5、架子而已。 如果在定义类的时候前面加上abstract关键字,则这个类被称为抽象类。如果类定义中的某个成员方法前被abstract关键字修饰,则这个成员方法是抽象方法。,抽象类的格式如下: abstract class 类名 类体; ,abstract class A / 抽象类 int i; A(int a) i=a; void show() System.out.println(“i=“+i); ,抽象方法就是只有声明而没有实现的方法。它说明了方法具有功能,但是没有说明具体有什么功能,而是在子类中去实现功能。,【 4.7 final关键字 】,final关键字修饰的量是常量。final关键

6、字修饰的方法是final方法,final修饰的类称为final类。,【例4.14】final常量的使用。 class A final int i=5; /i是常量 int j; A(final int a) /局部变量a是常量 /a+; 错误1 /i=a; 错误2 j=a; void show() System.out.println(“i=“+i+“ “+“j=“+j); ,public class Ex public static void main(String args) A a=new A(15); a.show(); ,【 4.8 本章小结 】,5.1 包 5.2 接口 5.3 本

7、章小结,第 5 章 包和接口,【 5.1 包 】,在通过import关键字导入包的时候可以加上static修饰符,则可导入包中的静态变量和静态方法,并且调用静态变量和静态方法的时候不需要类的点运算符操作,格式如下: import static 包名.类名.*; import static 包名.类名.成员变量; import static 包名.类名.成员方法; 例如: import static java.lang.System.*; 则可以直接使用System类的静态方法和静态变量,例如: out.println(“hello“); 这行代码相当于 System.out.println(“

8、hello“);,【 5.2 接口 】,接口定义中只包含常量定义和方法声明两个部分。 在接口中,所有的方法都是public abstract方法。 在接口中,所有的量都是public static final常量。 在接口中,不存在构造方法,更不能用new关键字实例化一个接口,接口从本质上说是一种特殊的抽象类,抽象类当然不能实例化。 在接口中,不可以出现main()主方法。 接口与接口间可以通过extends关键字实现继承或多继承。,interface A int COUNT = 1; void show(); ,实现接口的格式: 类名 extends 超类名implements 接口名列表

9、类体; ,通过关键字“implements” 实现这个接口,不仅要在类定义中定义自己特有的成员变量和成员方法,还要实现接口中声明的方法。 一个类可以实现多个接口(接口之间用逗号分隔) 。 类如果没有实现接口中的全部方法,则这个类是抽象类,必须显示用关键字abstract修饰,因为包含抽象方法的类一定是抽象类。 类在实现接口的方法时必须加上关键字public修饰方法。,【例5.7】接口中常量的使用。 interface Check int LAB=20; /接口中的常量 int MIDTERMTEST=30; int FINAL=50; void show(); class Student im

10、plements Check int lab; int mid; int fin; float grade; Student(int a,int b,int v) lab=a; mid=b; fin=v; grade=(LAB*lab+MIDTERMTEST*mid+FINAL*fin)/100; public void show() System.out.println(“Grade=“+grade); ,接口可以理解成一种数据类型,当声明一个变量是接口类型时,我们知道接口不可以实例化,那如果为之赋值呢?正确的方法是把完全实现接口的类的实例化对象赋值给这个变量。,当采取上述方法赋值、调用方法

11、时,方法会在运行时动态的调用具体的被重写的方法。,【例5.9】接口回调的使用。 interface Check void show(); /Teacher类实现Check接口 class Teacher implements Check public void show() System.out.println(“care the grade of child“); /Parents类实现Check接口 class Parents implements Check public void show() System.out.println(“care the health of child“)

12、; ,接口不可以实例化,但是接口可以通过接口回调的方法赋值,也就是可以用实现接口的类对象赋值。 参数可以是任何一种数据类型。接口既然可以理解为一种新的数据类型,就可以作为参数传递。,【例5.10】接口作为参数使用。 interface Check void show(); class GetCheck void showCheck(Check c) /接口c作为showCheck方法的参数 c.show(); /Teacher类实现Check接口 class Teacher implements Check public void show()/实现Check接口的show()方法 Syste

13、m.out.println(“care the grade of child“); /Parents类实现Check接口 class Parents implements Check public void show()实现Check接口的show()方法 System.out.println(“care the health of child“); ,【例5.12】使用接口实现多继承。 /父接口Check1 interface Check1 int FLAG=1; void show(); /父接口Check2 interface Check2 int FLAG=2; void show()

14、; /子接口SubCheck继承于Check1接口和Check2接口 interface SubCheck extends Check1,Check2 /空接口 / SubCheckClass类实现子接口SubCheck class SubCheckClass implements SubCheck public void show() System.out.println(“FLAG in Check1:“+Check1.FLAG); System.out.println(“FLAG in Check2:“+Check2.FLAG); System.out.println( “show()

15、in SubCheckClass“ ); ,接口和抽象类的共同特点是都可以有抽象方法,二者的不同点是: 接口中只有静态的常量,抽象类中还可以有成员变量。 接口中只能有抽象方法,抽象类中还可以有非抽象方法。 接口支持多继承,抽象类不支持多继承。,【 5.3 本章小结 】,包是Java中有效管理类的方法。使用package关键字定义包,使用import关键字导入包。import static可导入包中的静态变量和静态方法,方便使用。 接口是Java中有效规范类的方法,它可以避免类在设计上的不一致。接口是一系列方法的声明,是一些方法特征的集合,只有方法的参数和返回值类型而没有方法的具体实现。Java语言不支持多继承,但可以实现多个接口,间接的实现了多继承。 接口回调是指把实现接口的子类的实例化对象赋值给声明的接口变量。 接口和抽象类的共同特点是都可以有抽象方法,二者有三个不同点。,6.1 异常格式 6.2 异常类 6.3 多个catch块 6.4 throw关键字 6.5 throws关键字 6.6 finally关键字 6.7 自定义异常类 6.8 本章小结,第 6 章 异常处理,【 6.1 异常格式 】,异常处理语句有五个 关键字try、catch、 finally、throw和throws。,try 语句块; catch(异常类型1 异常对象1) 异常处理语句块1; c

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

最新文档


当前位置:首页 > 高等教育 > 大学课件

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