C#接口



1.接口的定義

  接口的定義是指定一組函數成員而不實現成員的引用類型,其它類型和接口可以繼承接口。

2.接口的特點

(1)通過接口可以實現多重繼承,C#接口的成員不能有public、protected、internal、private等修飾符。原因很簡單,接口裏面的方法都需要由外面接口實現去實現方法體,那麼其修飾符必然是public。C#接口中的成員默認是public的,java中是可以加public的。

(2)接口成員不能有new、static、abstract、override、virtual修飾符。有一點要注意,當一個接口實現一個接口,這2個接口中有相同的方法時,可用new關鍵字隱藏父接口中的方法。

(3)接口中只包含成員的簽名,接口沒有構造函數,所有不能直接使用new對接口進行實例化。接口中只能包含方法、屬性、事件和索引的組合。接口一旦被實現,實現類必須實現接口中的所有成員,除非實現類本身是抽象類。

(4)C#是單繼承,接口是解決C#裏面類可以同時繼承多個基類的問題。

3.程序

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;


namespace ConsoleApplication1
{
    class Bird
    {
        private string name;
        public string Name
        {
            get { return name; }
            set { name = value; }
        }
    }
    interface IFly
    {
        //接口中沒有訪問修飾符
        void Fly();
        
    }
    interface ISpeak
    {
        void Speak();
    }


    class Mq : Bird, IFly
    {                       //在子類中實現接口中的方法
        public void Fly()
        {
            Console.WriteLine("飛啊飛");
        }
    }


    class Qe : Bird
    {
    }


    class Yw : Bird, IFly, ISpeak
    {
        public void Fly()
        {
            Console.WriteLine("飛飛飛飛");
        }
        public void Speak()
        {
            Console.WriteLine("hello");
       
        }
    }


    class Program
    {
        static void Main(string[] args)
        {  //接口不能實例化
            IFly fly = new Mq();
            fly.Fly();


            IFly f = Create("yw");
            f.Fly();
            Yw y = new Yw();
            y.Fly();
            y.Speak();
            
            Console.ReadLine();
        }
        //簡單的工廠模式
        static IFly Create(string bird)
        {
            IFly fly = null;
            switch(bird){
                case "mq":
                    fly = new Mq(); break;
                case "yw":
                    fly = new Yw(); break;
                default: break;
            }


            return fly;
        }
    }
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章