正在加载图片...
Thinking in Java 3 Edition 8:接口与内部类 接口( interface)和内部类( inner class)提供了一种更为复杂的组织和控 制系统中对象的方法。 比方说,C++就没有这种机制,不过聪明的程序员还是能模拟出这种效 果。Java之所以会有这个特性,是因为设计人员认为它非常重要,语言 应该直接用关键词提供支持。 你已经在第7章学过了 abstract关键词,它能让你在类里创建一个或 多个没有定义的方法—你给出了接口,但是留一部分没做定义,这部分 要由它的继承类来定义。而 interface关键词则创建了一种完全抽象 的,根本不提供实现的类。你会看到, interface不仅是一种抽象类的 极端表现形式,它还是一种能让你将一个对象上传到多个基类的手段,因 此它提供了类似C++的“多重继承( multiple inheritance)”的功能 初看起来,内部类像是一种简单的隐藏代码的机制:你只是把一个类放到 另一个类里。但是,你将会看到,内部类可没这么简单—它还知道该怎 样同宿主类( surrounding class)打交道——因此,即使很多人还不熟悉 内部类,你还是能用它写出更为优雅清晰的代码。你得过一段时间才能把 内部类熟练地运用到设计之中。 接口( interface) interface关键词进一步强化了 abstract的概念。你可以把它想像成 纯的” abstract类。它能让开发人员定义类的形式:方法名,参数列 表,返回值的类型,但是却没有方法的正文。 interface也可以包含数 据成员,但是它天生就是 static和 final的。 interface只提供形式, 不谈实现 interface的意思是“所有‘实现’这个接口的类都应该长这个样 子。”因此任何程序,只要用到了这个 interface就都知道它有那些方 法可供调用了,仅此而已。因此, interface会被用作定义类之间的 “协议( protocol)”。(有些面向对象的语言真的用 protoco/关键词来作 这件事 要想创建 interface,只要把 class关键词换成 interface就行了。跟 类一样,你可以在 interface关键词前面加上 public(只有保存在同名 文件里的 interface才可以加),或者把它空着,留给它 package权 限,这样它就只能用于同一个 package了。 要创建一个实现了某个(或者某组) interface的类,就必须使用 implements关键词。它的意思是,“ interface要告诉你‘类长什么 第2页共47页 www.wgqqh.com/shhgs/tij.html email:shhgs@sohu.comThinking in Java 3 rd Edition www.wgqqh.com/shhgs/tij.html email:shhgs@sohu.com ￾ 2 ✁ ✂ 47 ✁ 8:   (interface)(inner cl ass),3†™(  *¥!(µ 8µ$ C+ + œm †" X^#$(â%&;'(! †Ø ÅJava uDEºm ×)* æ™+,ª&ٙA¯·% ƒ vwÒˆ-³./ ¡ôõF 7 û0^, abstract -³ A;Ç¡FË123×3 VלmO4(µ55¡¬!, 63œTO4  %7A(ö8QO4à in terface -³912,3†c:! ( ; Xñí(¡º<g in terface X<3†:!( =>?í@´ A3†;Ç¡3×¥!JAgV×B(CD æ òA,E C+ + (ÍVö8(m u ltip l e inh eritance)Ï(F; f<9Q }3†GH(IJK€("L¡óP3×kg M3×Ë ¡º<g ݜ ZGH55ANOwÕ ¦‡PQ(su rrou nd ing cl ass)]RO55æò SçŠVªXTU  ¡;ˆA«!™VWXY(K€¡‰^3D4Z;P T[r\ˆg+,u* (interface) in terface -³]3^_`, abstract (Öa¡ÝEPA|}Ž Íb(Ïabstract A;Çìª&O4(@´LµÑ cd ? efg(h iœmµ(j…in terface [ÝEklc mŽ& An0 static  final(in terface ó@´ Xoñí in terface (¹pÍDmq ñír ×(Ævws צ Ïæòtâ% ó%ˆg, × in terface ÆNOAmY̵ Ýuˆ, <òàôæò in terface ºvˆ1O4u4( Íwx(p rotocol )Ï(m̶y¥!(ƒz(ˆ protocol -³Q1 {) %|12 in terface ó%P class -³|Ž in terface },~ 3¦ ¡ÝEF in terface -³¶äJ pu blic(óm€F‡Ñ …{Ë( in terface ZÝEä ) 3šPA. 6¬A package ‚ ƒ ¦Aó;ˆ)‡3× package , %123×ñí,„×(3š„)in terface ( …†çˆ impl emen ts -³A(¹p Íin terface %#¡q s‡Z
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有