Java接口的妙用

王朝java/jsp·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

要害字

Java,interface

说明

希望能对研究COM的朋友带点帮助

接口功能介绍

1、‘纯’抽象类的实现(参见JAVA编程思想P/153)

// Interface1.java 接口只负责描述自己的样子“对于实现我的所有的类,看起来都应该象我这个样子。我所有的方法,实现类都必须有!”

public interface Interface1 {

public void setS(String str);

public String getS();

public void ShowMessage(String MSG);

}

=====================================================================

// ClassItf.java“接口只是一个非常‘纯‘的抽象的东西,你的实现代码都在我这里!”

public class ClassItf implements Interface1{

public String S = "";

public ClassItf() {

}

public void ShowMessage(String MSG)

{

System.out.print(this.getClass().getName()+"====="+MSG+"====by Interface1n/");}

public void setS(String str)

{

S = str;

}

public String getS()

{

return S;

}

}

2、多重继续的实现(参见JAVA编程思想P/155)

//Interfase2.java接口的样子

public interface Interface2 {

public void ShowMessage2(String MSG);

}

// ClassItf.java 加入多重继续后的ClassItf 灰底为加入更改、插入行

public class ClassItf implements Interface1,Interface2{

public String S = "";

public ClassItf() {

}

public void ShowMessage(String MSG)

{

System.out.print(this.getClass().getName()+"====="+MSG+"====by Interface1n/");

}

public void setS(String str)

{

S = str;

}

public String getS()

{

return S;

}

public void ShowMessage2(String MSG)

{

System.out.print(this.getClass().getName()+"====="+MSG+"====by Interface2n/");

}

}

呵呵!我的多重继续功能在JAVA中有着大量的应用如:

public class JFrameextends Frame implements WindowConstants, Accessible, RootPaneContainer

3、外观与实现分离

// ClassItf.java“接口只是一个非常‘纯‘的抽象的东西,你的实现代码都在我这里!”

public class ClassItf implements Interface1,Interface2{

public String S = "";

public ClassItf() {

}

public void ShowMessage(String MSG)// 实现了接口‘Interface1’ShowMessage

{

System.out.print(this.getClass().getName()+"====="+MSG+"====by Interface1n/");

}

public void setS(String str) //实现了接口‘Interface1’setS

{

S = str;

}

public String getS()//实现了接口‘Interface1’getS

{

return S;

}

public void ShowMessage2(String MSG)// 实现了接口‘Interface2’ ShowMessage2

{

System.out.print(this.getClass().getName()+"====="+MSG+"====by Interface2n/");

}

}

4、提供调用的影子

public void ShowMessage(Interface1 req)

{

req.ShowMessage("111");

}

public void ShowMessage2(Interface2 req)

{

req.ShowMessage2("111");

}

void jButton1_actionPerformed(ActionEvent e) {

private ClassItf C1 = new ClassItf();

ShowMessage(C1);

ShowMessage2(C1);

}

同样呀,我的应用也非常的广呀!

比如在Servlet的

public void doPost(HttpServletRequest request,HttpServletResponse response)

public void doGet(HttpServletRequest request,HttpServletResponse response)

HttpServletRequest ,HttpServletResponse我的应用!

其它如:

事件Listen呀:

public void addActionListener(ActionListener l)

Observer模式呀!

5、通过接口实现引用传递

public void SetS1(Interface1 req)

{

req.setS("New value with C1");

}

public void SetS2(ClassNoitf req)

{

req.setS("New value with C2");

}

void jButton3_actionPerformed(ActionEvent e) {

ClassItf C1 = new ClassItf();

ClassNoitf C2 = new ClassNoitf();

//Set C1

SetS1(C1);

//Set C2;

SetS2(C2);

//Get value

System.out.print(C1.getS());

System.out.print(C2.getS());

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航