C# 类(15) 接口

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;



namespace ConsoleApplication1

{

/*接口只声明、无实现、不能实例化;

接口可包含方法、属性、事件、索引器, 但无字段;

接口成员都是隐式的 public, 不要使用访问修饰符;



类、结构和接口都可以继承多个接口;

继承接口的类必须实现接口成员, 除非是抽象类;

类实现的接口成员须是公共的、非静态的.*/



   // 定义接口

    interface Myinterface

    { 

        //在接口里面声明一个方法, 没有实现. 也不能有实现

        int Num(int i, int s);

    }



    // 实现接口

    class MyClass : Myinterface

    {

       public int Num(int i, int s) //由于接口里面的成员都是public 所以实现的时候也要是public , 否则会报错.

        { return i + s; }

    }

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////



    //下面试试一个接口多个实现.



    interface Myinterface1

    {

        int Num(int i, int s);

    }

    // 多个实现.

    class Add : Myinterface1  // 实现1 加法

    {

        public int Num(int i, int s)

        { return i + s; }

    }



    // 实现2  减法

    class Sub : Myinterface1

    {

        public int Num(int i, int s)

        { return i - s; }

    }

    



////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    

    // 多个接口一个类实现.

    interface face

    { int Num(int i, int s);}

    interface face1

    { int Num(int i, int s);}

    // 一个类来实现两个接口,并且显示的实现.

    /* 显示实现接口不需要访问修饰符; 但显示实现的方法只能通过接口访问 */

    class MyFace : face, face1

    { int face.Num(int i, int s) { return i + s; } // 实现第一个. 

      int face1.Num(int i, int s) { return i - s; } // 实现第二个.

    }

    



    class Program

    {

        static void Main(string[] args)

        {

            //单个接口单个实现

            MyClass My = new MyClass();

            Console.WriteLine(My.Num(10, 9)); // 19

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

            //一个接口的多个实现.

            Add jiafa = new Add();

            Console.WriteLine(jiafa.Num(56,35)); //91

            Sub jianfa = new Sub();

            Console.WriteLine(jianfa.Num(56,35));//21

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

            // 多个接口一个类实现. 只能通过接口访问.

            face  Myjiafa = new MyFace();

            face1 Myjianfa = new MyFace();

            Console.WriteLine(Myjiafa.Num(20,10));//30

            Console.WriteLine(Myjianfa.Num(20,10));//10

            

        }

    }

}

 

你可能感兴趣的:(C#)