欢迎来到天天文库
浏览记录
ID:45088618
大小:967.00 KB
页数:48页
时间:2019-11-09
《《J接口和内部类》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、接口和内部类Interfaces&InnerClasses霍秋艳qyhuo@mail.xidian.edu.cn2接口和内部类接口和内部类为我们提供了一种将接口与实现分离的更加结构化的方法。Java提供一个叫做抽象方法的机制。abstract:类中创建一个或多个无方法体的类。interface:完全抽象类innerclasses看似一个简单的代码隐藏机制:可以将一个类的定义放在另一个类的定义的内部。3抽象类4抽象类是指不能直接被实例化的类,因此一般作为其它类的超类,与final类正好相反。概念上来说是一
2、个Java类和接口的混合Whatgoesinanabstractclass?implementcommonstateandbehaviorthatwillbeinheritedbysubclassesdeclaregenericbehaviorsthatsubclassesmustimplement抽象类5abstract关键字放在类明以及方法之前抽象类中的抽象的方法--在该类中定义但不在该类中提供实现,由继承类提供细节publicabstractclassSomeAbstractClass{voidm
3、ethod1(){System.out.println(“Hi,Java”);}voidmethod2();}一个抽象类甚至可以没有抽象方法只要包含有abstract方法,类就必须被声明为abstract,否则就不能编译。抽象类的语法6abstractclassAnimalKingdom{privateStringphylum;publicAnimalKingdom(Stringp){phylum=p;}publicStringgetPhylum(){returnphylum;}publicabstra
4、ctvoideat();}抽象类:例定义抽象方法的类必须是抽象类。抽象类中的抽象的方法--在该类中定义但不在该类中提供实现,由继承类提供细节。7抽象类和方法可以有数据和定义不可以创建实例必须定义所有的abstract方法才可以被实例化(否则类仍然是abstract类)8abstractInstrument一些方法和数据可以被定义剩余其它代码是一样的…abstractclassInstrument{privateinti;//Storageallocatedforeachpublicabstractvoi
5、dplay(Noten);publicStringwhat(){return"Instrument";}publicabstractvoidadjust();}9接口(interface)和抽象(abstract)类有什么不同?为什么都存在与Java中?什么时候该用一个抽象类,什么时候改用一个接口?问题?接口Interfaces11接口“纯(pure)”abstractclass–完全抽象的类允许创建者象建立一个类一样进行创建:methodnames,argumentlists,andreturntyp
6、es,butnomethodbodies.canalsocontainfields,buttheseareimplicitlystaticandfinal.–常量“所有实现了该特定接口的类看起来都像这样”interface&implements关键字“Theinterfaceiswhatitlookslike,butnotI’mgoingtosayhowitworks.”利用接口可实现多重继承(可同时实现多个接口)12InterfacesinterfaceKeyListener{publicvoidke
7、yPressed(KeyEvente);publicvoidkeyReleased(KeyEvente);publicvoidkeyTyped(KeyEvente);}一个接口描述方法但不提供方法的具体实现方法名、参数列表和返回类型13例ordinaryclass14例–代码interfaceInstrument{//Compile-timeconstant:intI=5;//static&final//Cannothavemethoddefinitions:voidplay(Noten);//Auto
8、maticallypublicStringwhat();voidadjust();}classWindimplementsInstrument{publicvoidplay(Noten){System.out.println("Wind.play()"+n);}publicStringwhat(){return"Wind";}publicvoidadjust(){}}Otherclassesaresimilar15完全解耦只要一个方法操作的
此文档下载收益归作者所有