个人博客:skyfffire.cn

深度解密,接口扩展——《Thinking in Java》随笔016

 1 //: HorrorShow.java
 2 // 研究多个接口的合成。
 3 package cn.skyfffire;
 4 
 5 /**
 6  * 
 7  * @author skyfffire
 8  * @version 0.1
 9  * @time 2017/3/2
10  *
11  */
12 interface Monster {
13     void menace();
14 }
15 
16 interface DangerousMonster extends Monster {
17     void destory();
18 }
19 
20 class DragonZilla implements DangerousMonster {
21     @Override
22     public void destory() {}
23     
24     @Override
25     public void menace() {}
26 }
27 
28 interface Lethal {
29     void kill();
30 }
31 
32 interface Vampire extends DangerousMonster, Lethal {
33     void drinkBlood();
34 }
35 
36 public class HorrorSHow {
37     static void u(Monster b) {
38         b.menace();
39     }
40     
41     static void v(DangerousMonster d) {
42         d.menace();
43         d.destory();
44     }
45     
46     public static void main(String[] args) {
47         DragonZilla dz = new DragonZilla();
48         
49         u(dz);
50         v(dz);
51     }
52 }
53 ///: ~

 

可以发现,接口可以通过extends关键字来合成、合成,而且支持多重合成。

posted @ 2017-03-02 09:14  skyfffire  阅读(158)  评论(0编辑  收藏  举报
个人博客:skyfffire.cn