随笔 - 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 小寻 阅读(172) 评论(0)  编辑  收藏 所属分类: j2se/j2ee/j2me

只有注册用户登录后才能发表评论。


网站导航: