Java接口、内部类和包.ppt

Java接口、内部类和包.ppt

ID:61995603

大小:305.00 KB

页数:36页

时间:2021-04-09

Java接口、内部类和包.ppt_第1页
Java接口、内部类和包.ppt_第2页
Java接口、内部类和包.ppt_第3页
Java接口、内部类和包.ppt_第4页
Java接口、内部类和包.ppt_第5页
资源描述:

《Java接口、内部类和包.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、接口、内部类和包接口(Interface)一个类一次只能继承一个类但可以实现若干个接口。接口只说明应该做什么但不指定如何做。当实现接口时,表明你同意遵守定义在该接口中的契约并履行该契约。通过正确地、具体地重写接口定义的所有方法,就可以实现一个接口。声明接口[public]interfaceMyInterface{[publicstaticfinal]intA=100;[publicabstract]voidadd(intx,inty);[publicabstract]voidvolume(intx,inty,i

2、ntz);}编译如下:javacMyInterface.java用关键字implements实现接口,例如:classdemoimplementsMyInterface{publicvoidadd(intx,inty){}publicvoidvolume(intx,inty,intz){}}接口使用示例interfaceA{voidshow();}classBimplementsA{intg;publicvoidshow(){System.out.println(“g=“+g);}}必须为publicclass

3、InterfaceTest{publicstaticvoidmain(Stringargs[]){Bb=newB();b.show();}}接口的特点接口及接口中成员的访问权限都是public接口中的成员方法都是public、abstract的实例成员方法接口中的所有abstract方法必须全部被实现接口的具体类实现接口中的成员变量都是常量接口不能被实例化接口是引用数据类型Ag1=newB();用接口实现多重继承一个类可以继承一个父类并实现多个接口接口的继承图4.5接口的继承接口与抽象类的区别相同点:两者都可以

4、包含抽象方法。两者都不能被实例化。两者都是引用数据类型。不同点:抽象类约定多个子类之间共同使用的方法;接口约定多个互不相关类之间共同使用的方法。抽象类与子类之间采用单重继承机制;一个类实现多个接口则实现了多重继承的功能。抽象类及其类中成员具有与普通类一样的访问权限;接口的访问权限有public和默认两种,接口中成员的访问权限均是public。抽象类中可以包含非抽象方法,也可以声明构造方法;接口中的方法全部是抽象方法,不能声明构造方法。抽象类中可以声明成员变量,子类可以对该成员变量赋值;接口中只能声明常量。内部类

5、(InnerClasses)内部类允许在一个类中定义另一个类,即能够使一个类成为另一个类的成员。按照如何定义以及在哪里定义内部类,内部类分为几种形式:一般内部类局部方法内部类匿名内部类静态嵌套类内部类的主要优点之一:内部类的实例与外部类的实例共享一种“特殊关系”——内部类中的代码可以访问外部类的所有成员(甚至是那些标识为private的成员)常规内部类 (RegularInnerClasses)例:MyOuter.java定义实例化内部类在外部类中实例化内部类从外部类之外创建内部类对象如果希望创建内部类的一个实

6、例,则必须有外部类的一个实例。内部类的实例总是拥有一个外部类的隐含引用。编译器将负责处理这种隐含关系。局部方法内部类(Method-LocalInnerClasses)局部方法内部类在外部类的方法内定义为了使用内部类,必须实例化它,该实例必须发生在同一个方法内,但位于该类的定义代码之后局部方法内部类不能使用该方法内的局部变量,final变量除外。能够应用于局部方法内部类的修饰符只有abstract和final(两者不能同时使用)匿名内部类(AnonymousInnerClasses)形式一:Food.java形

7、式二:Cookable.java形式三:方法的参数列表中声明的匿名内部类MyClass.java特点:无名称,子类或实现器作为一条语句的一部分,“};”参数列表中声明的匿名内部类:“})”静态嵌套类(StaticNestedClasses)ClassBigOuter{/*外部类的静态成员,Nested在BigOuter的作用域内,只能访问外部类的静态成员。*/staticclassNested{System.out.println(“hi”);}}访问方法:BigOuter.Nestedn=newBigOute

8、r.Nested();n.go();内部类特性内部类的类特性内部类不能与外部类同名。内部类具有封装性。内部类具有继承性。内部类具有抽象性。内部类能访问外部类成员。内部类的成员特性使用点运算符“.”引用内部类。例如:MyOuter.MyInner内部类具有静态特性。使用嵌套类来反映并实施两个类之间的关系。当嵌套类只在包含它的类中有意义时,或者它依赖于包含它的类来实现功能时,应该在另一个类

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

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

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