1 回答

TA貢獻1797條經驗 獲得超6個贊
我們定義一個接口
public interface IBark
{
void Bark();
}
再定義一個類,繼承于IBark,并且必需實現其中的Bark()方法
public class Dog:IBark
{
public Dog()
{}
public void Bark()
{
Consol.write("汪汪");
}
}
然后,聲明Dog的一個實例,并調用Bark()方法
Dog 旺財=new Dog();
旺財.Bark();
從接口的定義方面來說,接口其實就是類和類之間的一種協定,一種約束.還拿上面的例子來說.所有繼承了IBark接口的類中必需實現Bark()方法.那么從用戶(使用類的用戶)的角度來說,如果他知道了某個類是繼承于IBark接口,那么他就可以放心大膽的調用Bark()方法,而不用管Bark()方法具體是如何實現的.比如,我們另外寫了一個類.
public class Cat:IBark
{
public Cat()
{}
public void Bark()
{
Consol.write("喵喵");
}
}
一個接口
using System;
using System.Collections.Generic;
using System.Text;
namespace com.zh.jieKou
{
interface jieKou
{
void add();
void delte();
}
}
下面是較常用的使用方法
using System;
namespace ClassLibrary2
{
interface IEmploy //接口
{
void Speak(); //方法
}
class Hello:IEmploy //Hello類實現接口
{
public void Speak() //實現方法
{
Console.WriteLine("Hello:朋友");
}
}
class Sorry:IEmploy //Sorry類實現接口
{
public void Speak() //實現方法
{
Console.WriteLine("Sorry:朋友");
}
}
}
實現
//直接調用
IEmploy Ie = new Hello();
Ie.Speak(); //調用Hello類實現的接口
IEmploy Ie = new Sorry();
Ie.Speak();
//反射調用 記住反射的空間引用 using System.Reflection;
Assembly Asm = Assembly.Load("ClassLibrary2");//反射出空間
Type type = Asm.GetType("ClassLibrary2.Hello");//反射出空間下的類
object AssClas = Activator.CreateInstance(type);//動態實力化反射回來的指定空間下的指定類
IEmploy Ie = (IEmploy)AssClas; ////轉換為接口類型
//常用的就這幾種方法
添加回答
舉報