1 回答

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超6個(gè)贊
我們定義一個(gè)接口
public interface IBark
{
void Bark();
}
再定義一個(gè)類(lèi),繼承于IBark,并且必需實(shí)現(xiàn)其中的Bark()方法
public class Dog:IBark
{
public Dog()
{}
public void Bark()
{
Consol.write("汪汪");
}
}
然后,聲明Dog的一個(gè)實(shí)例,并調(diào)用Bark()方法
Dog 旺財(cái)=new Dog();
旺財(cái).Bark();
從接口的定義方面來(lái)說(shuō),接口其實(shí)就是類(lèi)和類(lèi)之間的一種協(xié)定,一種約束.還拿上面的例子來(lái)說(shuō).所有繼承了IBark接口的類(lèi)中必需實(shí)現(xiàn)Bark()方法.那么從用戶(hù)(使用類(lèi)的用戶(hù))的角度來(lái)說(shuō),如果他知道了某個(gè)類(lèi)是繼承于IBark接口,那么他就可以放心大膽的調(diào)用Bark()方法,而不用管Bark()方法具體是如何實(shí)現(xiàn)的.比如,我們另外寫(xiě)了一個(gè)類(lèi).
public class Cat:IBark
{
public Cat()
{}
public void Bark()
{
Consol.write("喵喵");
}
}
一個(gè)接口
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類(lèi)實(shí)現(xiàn)接口
{
public void Speak() //實(shí)現(xiàn)方法
{
Console.WriteLine("Hello:朋友");
}
}
class Sorry:IEmploy //Sorry類(lèi)實(shí)現(xiàn)接口
{
public void Speak() //實(shí)現(xiàn)方法
{
Console.WriteLine("Sorry:朋友");
}
}
}
實(shí)現(xiàn)
//直接調(diào)用
IEmploy Ie = new Hello();
Ie.Speak(); //調(diào)用Hello類(lèi)實(shí)現(xiàn)的接口
IEmploy Ie = new Sorry();
Ie.Speak();
//反射調(diào)用 記住反射的空間引用 using System.Reflection;
Assembly Asm = Assembly.Load("ClassLibrary2");//反射出空間
Type type = Asm.GetType("ClassLibrary2.Hello");//反射出空間下的類(lèi)
object AssClas = Activator.CreateInstance(type);//動(dòng)態(tài)實(shí)力化反射回來(lái)的指定空間下的指定類(lèi)
IEmploy Ie = (IEmploy)AssClas; ////轉(zhuǎn)換為接口類(lèi)型
//常用的就這幾種方法
添加回答
舉報(bào)