接口、抽象类,用于项目集成,如:
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(); }