隨筆 - 303  文章 - 883  trackbacks - 0
          <2007年2月>
          28293031123
          45678910
          11121314151617
          18192021222324
          25262728123
          45678910

          歡迎光臨! 
          閑聊 QQ:1074961813

          隨筆分類(357)

          我管理的群

          公共blog

          • n維空間
          • Email : java3d@126.com 群 : 12999758

          參與管理的論壇

          好友的blog

          我的其他blog

          朋友的網站

          搜索

          •  

          最新評論

          這是網友給的兩個代碼,如果您對類,接口還不甚明白建議看前面一篇文章;

          本人先指出:書寫Java時可以用extends,implements從interface 和class產生出新類

          問題: +++++++++++++++++++++++++++++++++++++++++++++

          這里的ActionListener為指定父類;

          class ActionListener1 implements ActionListener{}? //創建一個繼承類ActionListener的類ActionListener1


          interface ActionListener1 extends ActionListener{} //創建一個來自類ActionListener的接口ActionListener1

          如果我不創建實例,只想方法重載,是不是都可以用

          ++++++++++++++++++++++++++++++++++++++++++++++++

          很明顯按前面講的extends,implements從interface 和class產生出新類,這兩個辦法都可以

          但這樣講這篇文章實在是太簡單了,雖然有時候,簡單,不錯

          但在這里我看到另一個問題,就是這里的extends,implements
          有何不同

          前面已經把interface 和class
          給大家解釋一番,接下來我們來搞定extends,implements,呵呵

          +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


          extends,implements分析




          一般說法是:
          類繼承( extends )/ 接口實現( implements)

          一個類繼承了上一個類?? /? 一個接口寬展了N個類的M個接口(類:大寫字母;接口:小寫字母)

          class A?implements B{} / interface a extends A ,B,C... implements b ,c ,d ....{}

          但有個問題要指明:接口 a 將只能被寬展 不能繼續 在 a下創建類,并且很明顯要調用 a 中的方法,將會有一定的局限性,

          因為他沒有被實例化(有點像臨時演員,演完這個節目之后,下個節目要找他來演就很難了),在JAVA中有個專業名詞專門

          形容他---“輕量級”組件。很明顯,演戲(程序),導演(編程人員)不能什么角色都臨時演員,因為要出續集;但有時很

          需要,因為這樣省錢(系統資源)、靈活。

          所以,這些情況要看情況,這就是:好導演,花少錢,排好戲。



          前面,我說了要對extend和implements來個解剖,好了現在問題初步弄清楚就是:重量級(class)和輕量級(interface)

          問題。我們先講到這里,我要了;下面給大家一個關于輕量級組件swing的說明,希望大家看看:

          http://gceclub.sun.com.cn/Java_Docs/html/zh_CN/api/javax/swing/tree/class-use/DefaultMutableTreeNode.html


          然后來個例子:

          JAVA如何利用接口制造類似于C++的多繼承

          作者: daywolf 的 Blog 出處:http://www.csdn.net/

          多繼承其實是不好的東西,但是你有時候卻要用到它,那怎么辦呢?可以利用接口,下面是一個簡單的例子。

          interface CanFly
          {
          ?void fly();
          }

          interface CanSwim
          {
          ?void swim();
          }

          interface CanFight
          {
          ?void fight();
          }

          class ActionCharter
          {
          ?public void fight()
          ?{
          ?System.out.println("I can fight");
          ?}
          }

          class Hero extends ActionCharter implements CanFly,CanSwim,CanFight
          {
          ?public void swim(){
          ?System.out.println("I can swim");
          ?}
          ?
          ?public void fly(){
          ?System.out.println("I can fly");
          ?}?
          }

          public class HelloWorld
          {
          ?public static void u(CanFly i){i.fly();}
          ?public static void v(CanSwim i){i.swim();}
          ?public static void w(CanFight i){i.fight();}
          ?public static void x(ActionCharter i){i.fight();}
          ?
          ?public static void main(String []args)
          ?{
          ?Hero hero = new Hero();
          ?u(hero);
          ?v(hero);
          ?w(hero);
          ?x(hero);
          ?}
          ?
          }

          講解一下,這個例子里面在Hero繼承了一個類ActionCharter來實現接口CanFight的功能,另外兩個接口用方法實現,而在運行的時候采用動態綁定,來進行多態的實現,這個例子很簡單,但是用在實際上卻很有用



          地震讓大伙知道:居安思危,才是生存之道。
          posted on 2007-02-27 08:55 小尋 閱讀(179) 評論(0)  編輯  收藏 所屬分類: j2se/j2ee/j2me
          主站蜘蛛池模板: 九龙坡区| 博客| 通榆县| 伊通| 溧水县| 始兴县| 榆中县| 漾濞| 阿坝| 武功县| 富宁县| 桂平市| 吉安县| 保德县| 吐鲁番市| 琼结县| 余干县| 应用必备| 南乐县| 平遥县| 成武县| 定西市| 集安市| 云浮市| 綦江县| 滦南县| 方山县| 栾川县| 荆门市| 富蕴县| 广灵县| 庄河市| 盘锦市| 西藏| 叶城县| 壶关县| 长阳| 钟山县| 双桥区| 万载县| 本溪市|