• 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();
    }
    
  • 相关阅读:
    Linux autojump命令
    Linux rpmbuild命令
    RPM包制作教程
    LSP(分层服务提供程序)
    WPAD 的原理及实现
    在OpenSSL中添加自定义加密算法
    Openssl sess_id命令
    hdu1878欧拉回路(DFS+欧拉回路)
    好代码的伪科学定义
    MySQL安装过程中出现“APPLY security settings错误”的解决方式
  • 原文地址:https://www.cnblogs.com/sntetwt/p/11175007.html
Copyright © 2020-2023  润新知