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

    接口是指定一组函数成员而不实现它们的引用类型。所以只能类和结构来实现接口。对不同对象实现相同消息。

      示例:

      Interface Info{

        string GetName();

        string GetAge();}

      class CA:Info{

       public string name;

      public string age;

      public GetAge(){

        return age;}

      public GetName(){

        return name;}}

      public class CB:Info{

      public string name;

      public string age;

      public GetAge(){

        return age;}

      public class Program{

        static void printf(Info item){

        item.GetName();

        item.GetAge();}

      public static void main(){

        CA a=new CA();

        CB b=new CB();

        printf(a);

        printf(b);}

      }

    IComparable接口示例:

    数组排序Sort()依赖于一个Icomparable接口中的CompateTo函数,需要重写,若为一个类的排序改写则:

      public class Myclass:Icomparable{

      public int value;

      public int CompareTo(object obj){

      Myclass my=obj as Myclass;

        if(this.value<my.value)//this小于返回-1

          return -1;

        if(this.value>my.value)//this大于返回1

          return 1;

        return 0;//相等返回0}

    1.声明接口

    接口声明不能包含数据成员和静态成员,只能声明非静态的方法、属性、事件、索引器。

      interface IMyInterface

        {

        int test(int v);

        }

    接口声明允许有修饰符,但接口成员不允许有修饰符。隐式public。

      public interface I{

        int test(int v);

        private test(int v);//不允许}

    2.实现接口

      只有类和结构才能实现接口。

    3.接口是引用类型

      接口不仅仅是类或结构要实现的成员列表,它还是一个引用类型。

      class my:Info{…}

      my mc=new my();

      Info if=(Info)mc;//也可以用as

    4.实现具有重复成员的接口

    如果一个类实现了多个接口,出现重复情况则只需要用单个成员来包含所重复的接口。

    5.派生成员作为实现

      interface Itfc{

        void print();}

        class mybase{

      public void print(){Console.WreteLine(“Fc”);}

        class derived:mybase,Itfc{}

        class Program{

        static void main(){

          derived d=new derived();

          d.printf();}}

    虽然派生类没有,则实现基类中与接口相同的函数。

    6.显式接口成员实现

    当继承多个接口的时候,对不同接口相同方法改写

      interface i1{void print();}

      interface i2{void print();}

      class test:i1,i2{

      void i1.print();void i2.print();}

    访问显式接口需要将本类转换成接口类型。

  • 相关阅读:
    c++ 容器学习 理论
    TCP和UDP发送数据包的大小问题
    key.go
    election.go
    watch.go
    txn.go
    sort.go
    retry.go
    op.go
    maintenance.go
  • 原文地址:https://www.cnblogs.com/dlvguo/p/9688365.html
Copyright © 2011-2022 走看看