接口、抽象類,用於項目集成,如:app
Interface icls = appid == "A" ? new ClassA() : new ClassA();
icls.func("Hello");ide
接口定義blog
/// <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"); }
抽象類定義string
/// <summary> /// 不能初始化的類被叫作抽象類,它們只提供部分實現 /// </summary> public abstract class IAbstract { //子類不須要實現,但能夠重寫 public virtual string ToString(string str) { return str; } //抽象方法聲明不提供實際的實現,須要子類實現 public abstract void ToPrint(); }
抽象類實現it
/// <summary> /// 定義子類C /// </summary> public class ClassC : IAbstract { public override void ToPrint() { } }
抽象類調用class
public MainWindow() { InitializeComponent(); //抽象類調用 IAbstract clsc = new ClassC(); clsc.ToString("Hello"); clsc.ToPrint(); }