多态性(polymorphism)
外在表现出多种形式。
一。分类
二。抽象类
多态表现在,抽象类自身不能实例化,要实例化必使用其派生的具类。
三。接口和抽象类的抽象方法
派生具类必须实现接口及抽象方法。抽象方法使用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); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?