返回

Java编程思想

关灯
护眼
第12章(1 / 18)
强烈推荐: 大学里,我的日记 生死成谜 纪连海新解乾隆朝三大名臣 我亲爱的朋友们 听不到的恋人(电视偶像剧) 论如何养成摄政王 纵欲淫女短篇集 黑魔王传说Part3 伪装淑女

器不需要对其进行动态绑定。例如,

的类族๣之间可以进行类型转换。

得到我真正想要的,“不安全”的编程方แ式已逐渐成为ฦ编程代价高昂的主因之一。编译器就可以为final方法调用生成更有效的代;这&#x,感谢prenticehall的paulpet;

。但不能ม把它转换成

@๤sincນe

问题,并且只用一行代码就可以做更多的事。

中ณ,动态绑定是缺省行为,你不需要添加额外的关键字来实现多态poly摸rphism。然

super。“橡树”可转型为ฦ“树”,反之亦然,并最终取得胜利的

multipleinterfaທces

interfaທ9fight{

voidfight;

}

interfa99im{

void9im;

}

interfa9fly{

voidfly;

}

9๗charaທcter{

publicvoidfight{}

}

9๗dsa9๗character

implements9๗fly{

publicvoid9im{}

publicvoidfly{}

}

pubຘli9๗ture{

publi9๗fightx{xfight;๙}

publi9๗9imx{9๗im;๙}

publi9flyx{xfly;}

publi9charaທcterx{xfight;}

publi9stringargs{

heroh=๡ne9hero;

th;treatitasa9fight

uh;๙treatitasa99im

vh;treatitasa9๗fly

9h;treaທtitasaທna9๗chaທraທcນter

}

}:~

你可以看到,hero组合了具体类aທ9fight、9fly。这个具体类必须ี是先行,

当你要通过这种方式将,后面

跟着的才是接口。否则编译器会报错。9char,

注意,而且,在hero

中ณ并没有fight的定义。接口的规则是:你可以从接口中继承就像稍后你会看到เ的那

样,但是你得到的只是另一个接口。如果你想创建该新类型的对象,就必须有一个ฐ了

其全部定义แ的类。即使hero没有显式地fight的定义,其定义也随a9chaທracນter

而存在,因此它是被自动的,这使得创建hero对象成为了可能。

在adventure类中,你可以看到有四个方法把上述各种接口和具体类作为参数。当hero对

象被创น建时,它可以被传递给这些方法中ณ的任何一个,这意味着它依次被向上转型为每一个

接口。由于javaທ中这种接口设计的方แ式,使得这项ำ工作并不需要程序员一方付出任何特别

的努力。

一定要记住,前面的例子所展示的就是使用接口的核心原因:为了能够向上转型为不止一个

的基类型。然而,使用接口的第二个原因却是与使用抽象基类相同:防止客户端程序员创建

该类的对象,并确保这仅仅是建立一个接口。这就带来了一个问题๤:我们应该使用接口还是

抽象类?接口为你带来了使用抽象类的好处,并且还带来了使用接口的好处,所以如果你要

创建不带任何方แ法定义和成员变量的基类,那么你应该选择接口而不是抽象类。事实上,如

果你知道某事物应该成为ฦ一个ฐ基类,那么你的第一选择应该是使它成为ฦ一个ฐ接口,只有在强

书签 上一章 目录 下一章 书架s
推荐阅读: 盛世风华百度云 穿越之惑情美杜莎(丁五) 一卦问天 薛软软的结局 青梅渣马 永阈限 气修无极女主 重生超模完整版 梦一场歌词 天外飞来一只猪 性择第一篇 超能培训班修改器