接口的妙用
彭建雄
关键字XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" />
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 JFrame extends Frame implements WindowConstants, Accessible, rootPaneContainer
3、外观与实现分离
// ClassItf.java “接口只是一个非常‘纯‘的抽象的东西,你的实现代码都在我这里!”
public class ClassItf implements Interface1,Interface2{
os 10800 @4">
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());
}
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10752043/viewspace-998634/,如需转载,请注明出处,否则将追究法律责任。
<%=items[i].content%>
<%if(items[i].items.items.length) { %><%=items[i].items.items[j].username%> 回复 <%=items[i].items.items[j].tousername%>: <%=items[i].items.items[j].content%>
最新文章
- 可怕的 C# (转)
- Unify the Role-Based Security Models for Enterprise and Application Domains with .NET (转)
- Building Secure ASP.NET Applications: Authentication, Authorization, and Secure Communication (转)
- [Sample] Playing with music file (转)
- 中文web-app_2_3.dtd (转)
- 使用ASP.NET加密口令 (转)
- C++ Builder 高手进阶 (五)用BCB编写多线程应用程序 (转)
- 24点游戏探秘系列6:用概率统计的眼光看24点游戏 (转)
- Schema-oriented message destination (转)
- J2EE vs. Microsoft.NET (转)
转载于:http://blog.itpub.net/10752043/viewspace-998634/