zoukankan      html  css  js  c++  java
  • 泛型接口

     public abstract class DogCmd
        {
            public abstract string GetCmd();
        }
        public class SitDogCmd : DogCmd
        {
            public override string GetCmd()
            {
                return "sit";
            }
        }
        public class JumpDogCmd : DogCmd
        {
            public override string GetCmd()
            {
                return "jump";
            }
        }
        public interface IDogLearn<T> where T:DogCmd//泛型接口的定义,并且添加了约束,T限制为只能是DogCmd类及其派生类
        {
            void Act(T cmd);//接口里的方法没有实体,也没有访问关键字
        }

     public class Corky:Dog,IDogLearn<SitDogCmd>,IDogLearn<JumpDogCmd>//接口的实现
        {
            public Corky(string name) : base(name)/
            {
            }
            public void Act(SitDogCmd cmd)//定义接口内的同名方法
            {
                Console.WriteLine(cmd.GetCmd()); 
            }
            public void Act(JumpDogCmd cmd)
            {
                Console.WriteLine(cmd.GetCmd());
            }
          
         }
    class Program
        {
            static void Main(string[] args)
            {
                Corky corky = new Corky("CK");
                corky.Act(new SitDogCmd());//通过使用SitDogCmd类型参数调用了自己实现的IDogLearn接口里的方法Act

    corky.Act(new JumpDogCmd());

              }

          }

  • 相关阅读:
    初识STM32标准库
    自己写库—构建库函数雏形
    使用寄存器点亮LED等
    新建工程---寄存器版
    什么是寄存器
    初识STM32
    ST-LINK驱动的安装
    MDK5使用技巧
    开发环境的搭建
    1行Python代码制作动态二维码
  • 原文地址:https://www.cnblogs.com/cicily/p/10943791.html
Copyright © 2011-2022 走看看