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

     

     

     

     

  • 相关阅读:
    AOP动态代理两种方式
    Spring AOP的两种代理方式
    面试中关于Redis的问题看这篇就够了
    关于redis,学会这8点就够了
    什么是MVCC
    JAVA 中BIO,NIO,AIO的理解
    JAVA异常体系结构详解
    Java多线程:由浅入深看synchronized的底层实现原理
    为什么wait,notify和notifyAll要与synchronized一起使用?
    Java并发之AQS详解
  • 原文地址:https://www.cnblogs.com/zhaoyl9/p/11611808.html
Copyright © 2011-2022 走看看