c#接口初体验

class clsVBProgramer()      //vb的类
{
....
WriteCode()
{
     //用VB语言写代码;
}
....
}

class clsDelphiProgramer()     //Delphi的类
{
....
WriteCode()
{
    //用Delphi语言写代码;
}
   ....
}

        以上两个类都有WriteCode方法
现在公司来了一个项目,要求派某个程序员写一个程序。
class clsProject()      //项目类
{
....
WritePrograme(clsVBProgramer programer)//用VB写代码
{
    programer.WriteCode();
}
WritePrograme(clsDelphiProgramer programer)//重载方法,用Delphi写代码
{
    programer.WriteCode();
}
......
}
在主程序中我们可以这样写:     项目类实例中重载调用不同类型参数
main()
{
   clsProject proj=new clsProject;
   //如果需要用VB写代码
   clsVBProgramer programer1=new clsVBProgramer;
   proj.WritePrograme(programer1);
   //如果需要用Delphi写代码
   clsDelphiProgramer programer2=new clsDelphiProgramer;
   proj.WritePrograme(programer2);
}


*如果还有一个c#程序员那么
1、需要在加入class clsVBProgramer()类、
2、clsProject()中再加入WritePrograme(clsC#Programer programer)的重载
3、   clsC#Programer programerC#=new clsC#Programer;
      proj.WritePrograme(programerC#);



在使用接口后



interface IProgramer()     //声明IProgramer接口
{
WriteCode();      //接口中声明WriteCode()方法
}
然后声明两个类,并实现IProgramer接口:
class clsVBProgramer():IProgramer
{
....
WriteCode()
{
     //用VB语言写代码;
}
....
}

class clsDelphiProgramer():IProgramer
{
....
WriteCode()
{
    //用Delphi语言写代码;
}
   ....
}

       //clsVBProgramer()与clsDelphiProgramer()同时继承自接口
IProgramer它们都拥有WriteCode方法(与接口同名)

对clsProject这个类进行一下修改:
class clsProject()
{
....
WritePrograme(IProgramer programer)
{
    programer.WriteCode();//写代码
}
......
}
       //在不使用接口时clsProject()中多种方法重写,现改为使用接口

类型参数,调用接口中与类中同名的方法
main()
{
   clsProject proj=new clsProject;
   IProgramer programer; //接口实例
   //如果需要用VB写代码
   programer=new clsVBProgramer;  //接口实例类型
   proj.WritePrograme(programer);  //接口参数化
   //如果需要用Delphi写代码
   programer=new clsDelphiProgramer;
   proj.WritePrograme(programer);  
}

posted @ 2008-12-15 17:16  zhujie  阅读(140)  评论(0)    收藏  举报