zoukankan      html  css  js  c++  java
  • C# 接口

    定义:

    接口是把公共实例(非静态)方法和属性组合起来,以封装特定功能的一个集合。接口是一种规范,也是一种能力

    隐式实现接口

     1     class Program
     2     {
     3         static void Main(string[] args)
     4         {
     5             IPerson p = new Teacher();
     6             p.SayHello();
     7 
     8             Teacher t = new Teacher();
     9             t.SayHello();
    10 
    11             Console.ReadKey();
    12         }
    13     }
    14     class Teacher: IPerson
    15     {
    16         public void SayHello()
    17         {
    18             Console.WriteLine("Hello World!");
    19         }  
    20     }
    21 
    22     interface IPerson
    23     {
    24         void SayHello();
    25     }

    显示实现接口,目的:解决方法的重名问题

     1     class Program
     2     {
     3         static void Main(string[] args)
     4         {
     5             IPerson p = new Teacher();
     6             p.SayHello();
     7 
     8             Console.ReadKey();
     9         }
    10     }
    11     class Teacher: IPerson
    12     {
    13         void IPerson.SayHello()
    14         {
    15             Console.WriteLine("Hello World!");
    16         }
    17     }
    18 
    19     interface IPerson
    20     {
    21         void SayHello();
    22     }

    隐式实现接口:可以用接口声明,也可以用实现类Teacher声明,调用者都可以得到实例化对象的行为SayHello;显示接口实现:SayHello方法只能通过接口来调用  

     隐式实现接口时,Teacher有而且必须有自己的访问修饰符(public)

    显式实现接口时,Teacher不能有任何访问修饰符

    当一个抽象类实现接口时,需要子类去实现接口

     1     class Program
     2     {
     3         static void Main(string[] args)
     4         {
     5             IPerson p = new TeacherSon();
     6             p.SayHello();
     7 
     8             Console.ReadKey();
     9         }
    10     }
    11     abstract class Teacher : IPerson
    12     {
    13         public void SayHello()
    14         {
    15             Console.WriteLine("Hello World!");
    16         }
    17     }
    18 
    19     class TeacherSon : Teacher
    20     {
    21 
    22     }
    23 
    24     interface IPerson
    25     {
    26         void SayHello();
    27     }

    注意

    1. 接口名一般以大写字母I开头
    2. 不能像实例化一个类一样实例化接口(不能new)
    3. 接口不能包含实现其成员的任何代码(不能有方法体)
    4. 接口中可以有方法、属性、索引器、事件,不能有字段、构造函数和静态成员
    5. 实现接口的子类必须实现该接口的全部成员
    6. 接口只能继承于接口
    7. 接口中成员不能有修饰符,默认为public

     

     

     

     

  • 相关阅读:
    并发编程之多线程(理论部分)
    基于TCP和UDP的socket
    ajax笔记 显示出所城市名称 ShowCity.aspx Html代码
    蒸饭的纱布
    ajax 笔记--不刷新实现简单的留言版 guestBook
    从表的第几条取到第几条记录
    在asp.net添加数据到XML里去
    ajax 笔记-- 写了一个不用刷新就能实现--用户名验证的例子
    今天生日
    ajax 笔记不用刷新实现数据的分页显示
  • 原文地址:https://www.cnblogs.com/zhaoyl9/p/11611808.html
Copyright © 2011-2022 走看看