【C#】Interface(介面)應用

由於C#只有單一繼承,若要使用多個類別中的方法時,可以透過Interface方式來實現。

介面的宣告方法:Interface中不能包含方法的實作
Interface 介面名稱{
   介面方法
}

範例程式碼:
    interface IFly //定義IFly介面 
    {
        void Fly(int n); //宣告Fly方法
    }
    class Car : IFly    //Car類別實作IFly介面
    {
        public void SpeedUp(int n)
        {
            Console.WriteLine("車子加速前進 {0} 公里", n);
        }
        //Car類別的Fly方法實作IFly介面的Fly方法
        public void Fly(int n)
        {
            Console.WriteLine("車子飛上天前進 {0} 公里", n);
        }
    }
    class Bird : IFly //Bird類別實作IFly介面
    {
        public void Eat(int n)
        {
            Console.WriteLine("小鳥吃了 {0} 公斤的飼料", n);
        }
        //Bird類別的Fly方法實作IFly介面的Fly方法
        public void Fly(int n)
        {
            Console.WriteLine("小鳥飛上天前進 {0} 公里", n);
        }
    }
    class Motocycle : IFly //Motocycle類別實作IFly介面
    {
        public void Add_Oil(int n)
        {
            Console.WriteLine("機車加油 {0} 公升 ", n);
        }
        //Motocycle類別的Fly方法實作IFly介面的Fly方法
        public void Fly(int n)
        {
            Console.WriteLine("機車飛上天前進 {0} 公里", n);
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            //汽車
            Car BMW = new Car();
            BMW.Fly(30);
            Console.WriteLine();

            //小鳥
            Bird bird1 = new Bird();
            bird1.Fly(5);
            Console.WriteLine();

            //機車
            Motocycle Yamaha = new Motocycle();
            Yamaha.Add_Oil(6);  //加油
            Yamaha.Fly(10);   //實作IFly
            Console.Read();
        }
    }

執行畫面:

留言

這個網誌中的熱門文章

【ASP】日期轉換(西元<-->民國)

【VB】使用NPOI元件來匯出Excel--DataTableToExcel

【SQL】符號切割字串變成多欄