韩迎龙 发表于 2013-1-2 23:01:04

C#基础系列第六篇

<div id="cnblogs_post_body">前言: 完全是我在学习过程中记录的笔记,只不过分享一下让很多刚开始学习.net编程的人能够很快的学会C#语言

[*]接口
(1) 有时候需要考虑子类中一部分具有某些能力(方法),同时又需要考虑其多态的特征,这时候可以考虑接口
(2)语法:
            public interface 接口名
            {
                   //成员
            }
(3) 接口的存在就是为了被实现
(4)有了接口以后实现该接口的子类可以赋值给这个接口的变量,就可以实现多态了
(5)接口的存在就是为了多态
(6)接口与类的其中一个不同点在于多"继承"(实现)
(7)接口的使用
    interface IDriveable
            {
                     void Dirving();
            }
            class Teacher : IDriveable
            {
                     public void Dirving()
                     {
                            Console.WriteLine("终于有驾驶证了");
                     }
            }
            class Program
            {
                     static void Main(string[] args)
                     {
                            Teacher th = new Teacher();
                            th.Dirving();
                            IDriveable dir = th;
                            dir.Dirving();
                     }
            }
(8)接口的补充
       1)接口中的方法
            ->默认接口成员均是public,所以不需要考虑访问修饰符
            ->直接不写访问修饰符
                     返回值 方法名 (参数);
       2)接口的思想类中实现方法的语法:方法该怎么写就怎么写,好像没有接口存在一样
       3)接口的实现类必须实现接口中的成员
   4)接口中可以有哪些成员:抽象成员
(9)在使用上接口与抽象类非常类似(但是接口不允许有非抽象成员,成员的语法定义不同,多继承)
(10)在继承中有接口,又有类的时候注意:
       1)语法
            class 类名:父类,接口,接口
            {
            //成员
            }
  2)多个接口中如果有重名方法怎么办?
            ->使用显示实现接口的方式
            ->方法名是有接口名引导的
            ->方法没有访问修饰符
            ->方法不能被该类型的实例对象说调用,必须将其转换为接口类型进行调用
         
<div class="cnblogs_code" >http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gifhttp://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif接口的实现<div id="cnblogs_code_open_89cb6a31-8841-4da9-8ae5-d53471a04e3a" class="cnblogs_code_hide"> 1                   interface Iinter1 2 3                             { 4 5                                    void Func(); 6 7                             } 8 9                           interface Iinter210 11                             {12 13                                    void Func();14 15                             }16 17                           class MyClass : Iinter1, Iinter218 19                             {20 21                                    void Iinter1.Func()22 23                                  {24 25                                           Console.WriteLine("接口1");26 27                                  }28 29                                    void Iinter2.Func()30 31                                  {32 33                                           Console.WriteLine("接口2");34 35                                  }36 37                             }38 39                           class Program40 41                             {42 43                                    static void Main(string[] args)44 45                                  {46 47                                           MyClass m = new MyClass();48 49                                           Iinter1 i1 = m;50 51                                           i1.Func();52 53                                           Iinter2 i2 = m;54 55                                           i2.Func();56 57                                  }58 59                           }
页: [1]
查看完整版本: C#基础系列第六篇