這是網友給的兩個代碼,如果您對類,接口還不甚明白建議看前面一篇文章;
本人先指出:書寫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
小尋 閱讀(177)
評論(0) 編輯 收藏 所屬分類:
j2se/j2ee/j2me