C#之接口

接口类Interface1.cs

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

namespace ConsoleApplication1 {

    /*
    接口:属性、方法、事件、所引器 默认为public 但不能包含常数、字段、
    运算符、实例构造函数、析构函数或其他类型、任何种类的静态成员
    不能包含字段
    成员不允许添加访问修饰符 abstract(抽象类)也不行
    不能包含实现成员的任何代码
    实现过程必须在实现接口的类中完成
    接口可实现多重继承
    */
    interface Interface1 {
    //属性
        //1->接口成员不允许有访问修饰符
        //2->接口中不能有字段,属性声明为自动属性
        string Index {
            get;
            set;
        }
     //方法
        //方法不能包含方法体
        void Descreption();
    }
}

对接口实现的类Class1.cs

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

namespace ConsoleApplication1 {
    class Class1:Interface1 {
        private string _index;
        ////实现接口(隐式)
        //public void Descreption() {
        //    Console.WriteLine("接口描述"+this.Index);
        //}
        //public string Index {
        //    get;
        //    set;
        //}

        //接口实现(显式)
        void Interface1.Descreption() {
            Console.WriteLine("接口描述"+ _index);
        }
        string Interface1.Index {
            get {
                return _index;
            }

            set {
                _index = value;
            }
        }
    }
}

 

 

调用类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections;
using System.Runtime.InteropServices;

namespace ConsoleApplication1 {
    class Program {
        static void Main(string[] args){

            Class1 class1 = new Class1();
            ////隐式的调用(具体类调用)
            //class1.Index = "嘿嘿";
            //class1.Descreption();
            //显式的调用(接口来调用)
            Interface1 interface1 = new Class1();
            interface1.Index = "嘿嘿";
            interface1.Descreption();

            Console.ReadKey();
显式隐式实现方式并存的情况下,接口调用的是显性方法,类对象调用的是隐形方法
当一个类实现的多个接口中具有相同的方法时,用显式方法来专门实现某个接口的方法时就显得非常有用
} } }

 以前写的没一点印象了,下边接着忽悠

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

namespace 接口 {
    class Program {
        static void Main(string[] args) {
            Ijiekouable jiekou = new person();
            jiekou.jikou();

            Console.ReadLine();
        }
    }
    //接口,必须实现
    interface Ijiekouable {
        void jikou();
    }
    class person:Ijiekouable {
        public void jikou() {
            Console.WriteLine("隐式实现接口");
        }
        void Ijiekouable.jikou() {
            Console.WriteLine("显式实现接口");//优先级高
        }
    }
}

 

posted @ 2016-09-29 17:45  刘冠  阅读(295)  评论(0编辑  收藏  举报