C#接口是一個讓很多初學C#者容易迷糊的東西
我們定義一個接口
public interface IBark
{
void Bark();
}
再定義一個類
public class Dog:IBark
{
public Dog()
{}
public void Bark()
{
Consol
}
}
然後
Dog 旺財=new Dog();
旺財
試想一樣
還有人是這樣說的:從接口的定義方面來說
public class Cat:IBark
{
public Cat()
{}
public void Bark()
{
Consol
}
}
當用戶用到Cat類或是Dog類的時候
如果我們從設計的角度來看
通過學習對C#中接口的作用有了更進一步的理解
假設我們公司有兩種程序員
class clsVBProgramer()
{
WriteCode()
{
//用VB語言寫代碼
}
}
class clsDelphiProgramer()
{
WriteCode()
{
//用Delphi語言寫代碼
}
}
現在公司來了一個項目
class clsProject()
{
WritePrograme(clsVBProgramer programer)//用VB寫代碼
{
programer
}
WritePrograme(clsDelphiProgramer programer)//重載方法
{
programer
}
}
在主程序中我們可以這樣寫
main()
{
clsProject proj=new clsProject;
//如果需要用VB寫代碼
clsVBProgramer programer
proj
//如果需要用Delphi寫代碼
clsDelphiProgramer programer
proj
}
但是如果這時公司又來了一個C#程序員
但是如果改用接口
首先聲明一個程序員接口
interface IProgramer()
{
WriteCode();
}
然後聲明兩個類
class clsVBProgramer():IProgramer
{
WriteCode()
{
//用VB語言寫代碼
}
}
class clsDelphiProgramer():IProgramer
{
WriteCode()
{
//用Delphi語言寫代碼
}
}
對clsProject這個類進行一下修改
class clsProject()
{
WritePrograme(IProgramer programer)
{
programer
}
}
main()
{
clsProject proj=new clsProject;
IProgramer programer;
//如果需要用VB寫代碼
programer=new clsVBProgramer;
proj
//如果需要用Delphi寫代碼
programer=new clsDelphiProgramer;
proj
}
如果再有C#
另外我們如果把clsProject這個類封成一個組件
From:http://tw.wingwit.com/Article/program/net/201311/11688.html