zoukankan      html  css  js  c++  java
  • C# 接口、抽象类、以及事件

    接口、抽象类,用于项目集成,如:

    Interface icls = appid == "A" ? new ClassA() : new ClassA();
    icls.func("Hello");

    接口定义

    /// <summary>
    /// 接口成员:属性、方法、事件
    /// 成员不能有 new、static、abstract、override、virtual 修饰符
    /// </summary>
    public interface Interface
    {
        string func(string str);
    }
    

    接口实现

    /// <summary>
    /// 定义子类A
    /// </summary>
    public class ClassA : Interface
    {
        public string func(string str)
        {
            return str;
        }
    }
    
    /// <summary>
    /// 定义子类B
    /// </summary>
    public class ClassB : Interface
    {
        public string func(string str)
        {
            return str;
        }
    }
    

      接口调用

    public MainWindow()
    {
        InitializeComponent();
        //调用方式一
        Interface icls = new ClassA();
        String hello = icls.func("Hello");
        //调用方式二
        ClassB cls = new ClassB();
        String world = cls.func("World");
    }
    

    抽象类定义

    /// <summary>
    /// 不能初始化的类被叫做抽象类,它们只提供部分实现
    /// </summary>
    public abstract class IAbstract
    {
        //子类不需要实现,但可以重写
        public virtual string ToString(string str)
        {
            return str;
        }
        //抽象方法声明不提供实际的实现,需要子类实现
        public abstract void ToPrint();
    }
    

     抽象类实现

    /// <summary>
    /// 定义子类C
    /// </summary>
    public class ClassC : IAbstract
    {
        public override void ToPrint()
        {
    
        }
    }
    

     抽象类调用

    public MainWindow()
    {
        InitializeComponent();
        //抽象类调用
        IAbstract clsc = new ClassC();
        clsc.ToString("Hello");
        clsc.ToPrint();
    }
    
  • 相关阅读:
    正则判断手机号是不是11位
    jQuery, js 验证两次输了密码的一相同
    数据库读取图片
    使用 jQuery 修改 css 中带有 !important 的样式属性
    PHP去掉最后一个字符
    按钮
    js 实现两种99乘法表
    PHP 各种循环
    thinkphp的空控制器和空操作以及对应解决方法
    ThinkPHP框架知识
  • 原文地址:https://www.cnblogs.com/sntetwt/p/11175007.html
Copyright © 2011-2022 走看看