多态性(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);
    }
}
复制代码

 

     

 

posted @   獨懼  阅读(58)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示