zoukankan      html  css  js  c++  java
  • C#接口的实现和继承实践

    1.基本概念

    接口是一种契约规范,类似于抽象基类。包括方法,属性,索引器和事件作为成员,这些成员只是作为定义,并不在接口中具体实现。

    接口创建时注意以下事项:

    1. 继承接口的任何非抽象类都必须实现接口的所有成员
    2. 不能直接实例化接口
    3. 接口可以包含事件,索引器,属性和方法,不包括方法的实现
    4. 类和结构可从多个接口继承,中间用“,”隔开
    5. 接口自身可从多个接口继承

    接口声明格式如下

    修饰符 interface 接口名称:继承接口列表(非继承接口可省去该部分)

    {

    接口内容:属性,方法,索引器,事件

    }

    2.使用实例

    如定义一个信息类接口,包含编码和名称属性及信息显示方法。

    通过销售类信息和进货类信息继承该接口。

    整个文档接口如下:

    • 接口定义
     1 namespace CSCOMExample
     2 {
     3     public interface Informatioin
     4     {
     5         string Code { get; set; } //编码属性
     6         string Name { get; set; }//名称属性
     7         void ShowInfo();//输出信息方法
     8     }
     9 
    10    }    
    • 进货类
     1 namespace CSCOMExample
     2 {
     3  
     4         /// <summary>
     5         /// 进货信息继承接口
     6         /// </summary>
     7         public class JHInfo : Informatioin      //继承接口
     8         {
     9             string code = "";
    10             string name = "";
    11             /// <summary>
    12             /// 实现编码属性
    13             /// </summary>
    14             public string Code
    15             {
    16                 get { return code; }
    17                 set { code = value; }
    18             }
    19             /// <summary>
    20             /// 实现名称属性
    21             /// </summary>
    22             public string Name
    23             {
    24                 get { return name; }
    25                 set { name = value; }
    26             }
    27         /// <summary>
    28         /// 实现进货显示信息方法
    29         /// </summary>
    30         void Informatioin.ShowInfo()
    31         {
    32             Console.WriteLine("进货信息:
    " + Code + " " + Name);
    33         }
    34     }
    35 }
    • 销售类
     1 namespace CSCOMExample
     2 {
     3     /// <summary>
     4     /// 销售信息继承接口
     5     /// </summary>
     6     public class XSInfo : Informatioin      //继承接口
     7     {
     8         string code = "";
     9         string name = "";
    10         /// <summary>
    11         /// 实现编码属性
    12         /// </summary>
    13      public  string Code
    14         {
    15             get { return code; }
    16             set{code =value; }
    17         }
    18         /// <summary>
    19         /// 实现名称属性
    20         /// </summary>
    21        public string Name
    22         {
    23             get{return name; }
    24             set {  name=value;  }
    25         }
    26         /// <summary>
    27         ///销售信息显示方法
    28         /// </summary>
    29         void Informatioin.ShowInfo()
    30         {
    31             Console.WriteLine("销售信息:
    " + Code + " " + Name);
    32         }
    33     }
    34 }

    以上,分别在JHInfo类和XSInfo类中对接口的属性和方法进行了实现。如此,一个信息接口Information就完成了。

    再做一个测试程序,检测接口:

     1 namespace ComText
     2 {
     3     class Program
     4     {
     5         static void Main(string[] args)
     6         {
     7             Informatioin[] Infos = { new JHInfo(), new XSInfo() };//定义接口数组
     8             Infos[0].Code = "JH0001";
     9             Infos[0].Name = "笔记本电脑";
    10             Infos[0].ShowInfo();
    11 
    12             Infos[1].Code = "XS0001";
    13             Infos[1].Name = "荣耀手机";
    14             Infos[1].ShowInfo();
    15             Console.ReadLine();
    16         }
    17     }
    18 }

    输出结果如下:

  • 相关阅读:
    他扎根农村种植双孢菇,从门外汉成为了“土专家”
    农村小伙成立生态农业基地,带领村民打开致富新门路
    小伙让蜜柚成为真正的“黄金柚”,帮助600多农户发家致富
    js时间格式化函数,支持Unix时间戳
    js时间格式化函数,支持Unix时间戳
    js时间格式化函数,支持Unix时间戳
    js时间格式化函数,支持Unix时间戳
    Netty随记之ChannelInboundHandlerAdapter、SimpleChannelInboundHandler
    Netty随记之ChannelInboundHandlerAdapter、SimpleChannelInboundHandler
    Netty随记之ChannelInboundHandlerAdapter、SimpleChannelInboundHandler
  • 原文地址:https://www.cnblogs.com/allencxw/p/9528443.html
Copyright © 2011-2022 走看看