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();
    }
    
  • 相关阅读:
    算法训练 区间k大数查询
    算法训练 最大最小公倍数
    身份证号码升级
    python包与模块导入
    python函数
    HDU 3595 博弈论,被支配的恐惧
    BZOJ 3195 [Jxoi2012]奇怪的道路
    大暑假集训
    [Poi2010]Monotonicity 2
    BZOJ 4868 HEOI 期末考试
  • 原文地址:https://www.cnblogs.com/sntetwt/p/11175007.html
Copyright © 2011-2022 走看看