外在表现出多种形式。
一。分类
二。抽象类
多态表现在,抽象类自身不能实例化,要实例化必使用其派生的具类。
三。接口和抽象类的抽象方法
派生具类必须实现接口及抽象方法。抽象方法使用override实现。
四。虚成员与抽象成员比较
补充知识:
屏蔽(mask)基类成员——派生类使用与基类同名成员(函数成员)。加new表示特意屏蔽的,不加时编译器会提示。
*:代码经常使用这个特性,说明程序需要重新评估类的设计,一般来说存在更优雅的设计。(C#图解教程第5版P135)
// 基类 class SomeClass { public string field1 = "SomeClass field1"; public void Method1(string value) { Console.WriteLine($"SomeClass.Method1: {value}"); } } // 派生类 class OtherClass:SomeClass { new public string field1 = "OtherClass filed1"; new public void Method1(string value) { Console.WriteLine($"OtherClass.Method1: {value}"); } } // 主类 class Program { static void Main() { OtherClass oc = new OtherClass(); oc.Method1(oc.field1); } }
标签:polymorphism,string,Method1,多态性,field1,new,OtherClass,public From: https://www.cnblogs.com/duju/p/16963807.html