interface IPrint {
void Print();
}
class A : IPrint {
public void Print() {
System.Console.WriteLine("A");
}
}
class B : IPrint {
public void Print() {
System.Console.WriteLine("B");
}
}
class AppMain {
public static void Print(IPrint obj) {
obj.Print();
}
public static void Main() {
Print(new A()); // display A
Print(new B()); // display B
}
}
在这个例子中,IPrint 接口中定义了Print方法,但没有实现方法体.
类A和类B都继承了IPrint接口,并且实现了不同的Print方法.
在AppMain 中调用AB,获得不同的打印结果
//定义打印机接口
interface Iprint{
bool PrintData(string data);
}
//定义打印机类A,实现接口
class PrintA:Iprint{
public virtual bool PrintData(string data){
//具体业务逻辑略
}
}
定义打印机类B,实现接口
class PrintB:Iprint{
public virtual bool PrintData(string data){
//具体业务逻辑略
}
}
//定义工厂类
class PrintFactory{
public Iprint CreatePrint(){
//返回一个由打机类A,或B实现的接口,比如
return new PrintA();
}
}
//通过工厂类,调用打印机
private void button1_Click(object sender,EventArgs e){
PrintFactory myFactory=new PrintFactory();
Iprint myPrint=myFactory.CreatePrint();
myPrint.PrintData("这样做很方便啊");
}