You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#多态代码报错求助:新手寻求解决方案

C#多态报错解决方案

报错原因

你的基类Animal未定义MakeSound方法,编译器无法通过Animal类型变量找到子类中实现的该方法,因此抛出错误。

解决方法

  • 步骤1:在基类中声明方法
    根据需求选择抽象方法(基类无实现,强制子类重写):

    public abstract class Animal
    {
        public abstract void MakeSound();
    }
    

    或虚方法(基类有默认实现,子类可选择重写):

    public class Animal
    {
        public virtual void MakeSound()
        {
            Console.WriteLine("动物发出声音");
        }
    }
    
  • 步骤2:子类重写方法
    继承基类后,用override关键字重写方法:

    public class Dog : Animal
    {
        public override void MakeSound()
        {
            Console.WriteLine("汪汪汪");
        }
    }
    
  • 步骤3:正确调用多态方法
    通过基类类型变量调用,会自动执行子类的重写逻辑:

    Animal myDog = new Dog();
    myDog.MakeSound(); // 输出"汪汪汪"
    

关键提醒:C#中,只有基类声明的方法,才能通过基类类型变量调用子类的重写实现,这是多态的核心规则。

内容的提问来源于stack exchange,提问作者abrahimzaman360

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 20:01:07