欢迎来到天天文库
浏览记录
ID:50023399
大小:65.50 KB
页数:23页
时间:2020-03-07
《Java2简明教程] 教学课件 作者Java2-5.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第5章接口和包本章主要讲述如下内容:接口的定义和使用;接口与抽象类的异同点;包的定义和使用;15.1接口引入接口的原因:在程序设计中经常遇到这样一个问题:有些类互不相关,但却具有相似的方法。并且这些方法在各个类中的实现互不相同。我们不能为这些类定义一个共同的父类,但又希望在程序中体现出它们共同的接口。25.1.1接口的定义和应用接口是一系列常量和空方法的集合,它提供了多个类共同的方法,但不限制每个类如何实现这些方法。Java允许一个类同时实现多个接口,相当于实现多继承的功能。35.1.1接口的定义和应用(续)声明一个接口的语法格式:[public]interfacein
2、terfaceName[extendssuper-interface-List]{typeConstantName=value;typeMethodName(Parameterlists);}45.1.1接口的定义和应用(续)接口中不能声明任何变量和构造函数。如果一个类实现多个接口,应该在接口名之间用逗号隔开。当一个类实现接口时,必须实现接口中给出的空方法,若实现接口的类是一个抽象类,可以把实现接口的任务交给子类去实现。例如:5//程序5-1interfaceSortable{//定义一个接口intCompare(Sortables);}6classSort{//定义一个排序
3、类,仅有一个静态的方法publicstaticvoidSelectSort(Sortablea[]){inti,j,k;Sortabletemp;for(i=0;i4、方法publicintCompare(Sortables){Studentst=(Student)s;//类型强制转换returnscore-st.score;}publicStringtoString(){return"score="+score;}}8classRectangleimplementsSortable{//矩形类也实现了接口privateintlength,width;Rectangle(intx,inty){length=x;width=y;}intarea(){returnlength*width;}publicintCompare(Sortables)5、{//实现接口Rectanglerec=(Rectangle)s;//类型强制转换returnarea()-rec.area();}publicStringtoString(){return"area="+area();}}9publicclassinterfaceTest{publicstaticvoidmain(Stringargs[]){Studentstud[]=newStudent[20];inti;for(i=0;i6、rt(stud);//排序for(i=0;i7、接口的定义和应用(续)接口中定义的变量实际上是常量,必须给出它们的初始值,实现接口的类可以自由引用这些常量。例如://程序5-2的部分interfaceconstant{intEXCELLENT=5;intGOOD=4;intPASS=3;intFAIL=2;}125.1.1接口的定义和应用(续)在类中实现接口中方法时,方法的特征必须和接口中声明的方法特征保持一致;实现方法时必须在方法前加上public;若一个类没有对接口中的方法具体实现,那么必须将该类声明为abstract类。例如:13interfa
4、方法publicintCompare(Sortables){Studentst=(Student)s;//类型强制转换returnscore-st.score;}publicStringtoString(){return"score="+score;}}8classRectangleimplementsSortable{//矩形类也实现了接口privateintlength,width;Rectangle(intx,inty){length=x;width=y;}intarea(){returnlength*width;}publicintCompare(Sortables)
5、{//实现接口Rectanglerec=(Rectangle)s;//类型强制转换returnarea()-rec.area();}publicStringtoString(){return"area="+area();}}9publicclassinterfaceTest{publicstaticvoidmain(Stringargs[]){Studentstud[]=newStudent[20];inti;for(i=0;i6、rt(stud);//排序for(i=0;i7、接口的定义和应用(续)接口中定义的变量实际上是常量,必须给出它们的初始值,实现接口的类可以自由引用这些常量。例如://程序5-2的部分interfaceconstant{intEXCELLENT=5;intGOOD=4;intPASS=3;intFAIL=2;}125.1.1接口的定义和应用(续)在类中实现接口中方法时,方法的特征必须和接口中声明的方法特征保持一致;实现方法时必须在方法前加上public;若一个类没有对接口中的方法具体实现,那么必须将该类声明为abstract类。例如:13interfa
6、rt(stud);//排序for(i=0;i7、接口的定义和应用(续)接口中定义的变量实际上是常量,必须给出它们的初始值,实现接口的类可以自由引用这些常量。例如://程序5-2的部分interfaceconstant{intEXCELLENT=5;intGOOD=4;intPASS=3;intFAIL=2;}125.1.1接口的定义和应用(续)在类中实现接口中方法时,方法的特征必须和接口中声明的方法特征保持一致;实现方法时必须在方法前加上public;若一个类没有对接口中的方法具体实现,那么必须将该类声明为abstract类。例如:13interfa
7、接口的定义和应用(续)接口中定义的变量实际上是常量,必须给出它们的初始值,实现接口的类可以自由引用这些常量。例如://程序5-2的部分interfaceconstant{intEXCELLENT=5;intGOOD=4;intPASS=3;intFAIL=2;}125.1.1接口的定义和应用(续)在类中实现接口中方法时,方法的特征必须和接口中声明的方法特征保持一致;实现方法时必须在方法前加上public;若一个类没有对接口中的方法具体实现,那么必须将该类声明为abstract类。例如:13interfa
此文档下载收益归作者所有