博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# 接口使用方法
阅读量:5820 次
发布时间:2019-06-18

本文共 2893 字,大约阅读时间需要 9 分钟。

       之前一直不理解接口这一概念,今天无意中翻书,网上查资料悟道其中的道理,现在工作没有用到interface这一块,怕以后会遇到忘记实现的方法便记录下来,哪里写的不对希望读者指出,话不多说,接下来看我对接口的理解。

1.接口说明:

  接口为不同应用的实现提供了一中规范和约束,只要每个应用都遵守这种规范和约束,整个系统就可以得到有效的组织,从而为应用系统的低代价开发提供有效的途径。

  接口用于描述一组类的公共方法/公共属性. 它不实现任何的方法或属性,只是告诉继承它的类《至少》要实现哪些功能,继承它的类可以增加自己的方法。

2.接口声明:

interface ISample    {        void f(int x);                              //方法        int att { get; set; }                       //属性(可读,可写)        event EventHandler OnDraw;                  //事件        string this[int index] { get; set; }        //索引器    }

3.接口使用注意事项:

1.接口可以继承。2.类要继承接口的所有东西3.接口不能继承类4.一个类可以继承多个接口5.接口的修饰符可以是 new、public、protected、internal、private6.接口成员前面不允许有修饰符,都默认为公有成员(public)7.接口成员可以分为4类:方法、属性、事件、索引器,而不能包含成员变量

4.实例

   public class Program    {        static void Main(string[] args)        {            Dog dog = new Dog();                dog.Cay();            Cat cat = new Cat();            cat.Cay();            Pig pig = new Pig();            pig.Cay();            Console.Read();        }    }    class Dog : Animal                      //定义狗的类    {        public void Cay()                   //输出狗叫声的方法        {            Console.WriteLine("汪汪汪");        }    }    class Cat : Animal                      //定义猫的类    {        public void Cay()                   //输出猫叫声的方法        {            Console.WriteLine("喵喵喵");        }    }     class Pig : Animal                      //定义猪的类    {        public void Cay()                   //输出猪叫声的方法        {            Console.WriteLine("哼哼哼");        }    }    interface Animal    //动物接口    {        void Cay();     //叫声的方式     }

输出的结果:

这样一看,如果想要调用Cay()方法,在Dog,Cat,Pig中直接定义不就好了,何必多次一举?

那么我们修改一下代码,再定义一个类Class,这个Class作为实现接口传入,这个类不需要继承于接口Animal:

   public class Program    {        static void Main(string[] args)        {            Class c = new Class();            Animal animal;            animal = new Dog();            c.WriteCay(animal);            animal = new Cat();            c.WriteCay(animal);            animal = new Pig();            c.WriteCay(animal);            Console.Read();        }    }    class Dog : Animal                      //定义狗的类    {        public void Cay()                   //输出狗叫声的方法        {            Console.WriteLine("汪汪汪");        }    }    class Cat : Animal                      //定义猫的类    {        public void Cay()                   //输出猫叫声的方法        {            Console.WriteLine("喵喵喵");        }    }     class Pig : Animal                      //定义猪的类    {        public void Cay()                   //输出猪叫声的方法        {            Console.WriteLine("哼哼哼");        }    }    class Class    {        public void WriteCay(Animal animal)        {            animal.Cay();            Console.WriteLine("--------------------------");        }    }    interface Animal    //动物接口    {        void Cay();     //叫声的方式     }

此时的函数的结果是:

 如果再来一个Monkey,Cattle,Sheep这样的类添加进来,也只需要把他们的相关类加进来,然后在Main()中稍作修改就好,扩充性特别好。

 

转载地址:http://fszdx.baihongyu.com/

你可能感兴趣的文章
ActiveMQ基本知识
查看>>
归纳法 演绎法区别
查看>>
愚人节整人大全,丧心病狂没朋友!
查看>>
OSChina 周二乱弹 —— 我视若珍宝的,别人弃之如敝履。
查看>>
java和c中"="的区别
查看>>
Ubuntu Kylin 安装和配置maven
查看>>
jvm GC内存回收的思考
查看>>
CentOS安装rar命令
查看>>
嵌入式Linux开发及移植的学习建议
查看>>
023# Adempiere的设备部署形式
查看>>
PROPAGATION_REQUIRED PROPAGATION_NESTED
查看>>
HBase–常用Shell操作篇
查看>>
100-85
查看>>
HDOJ 2011 多项式求和
查看>>
springboot日志
查看>>
sharepoint 2013/2016/2007 如何确定一个SharePoint列表的ID
查看>>
cisco路由器进入rommon模式
查看>>
hadoop 安装配置
查看>>
我的友情链接
查看>>
不建议频繁改动域策略
查看>>