服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

java接口的妙用


  关键字
  
  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{
  
  
  
   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());
  
   }

扫描关注微信公众号