回覆列表
  • 1 # 錢布斯

    我們定義一個介面

    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; ////轉換為介面型別

    //常用的就這幾種方法

  • 中秋節和大豐收的關聯?
  • 求論語'過猶不及'的深層意思?