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
相关产品推荐
相关产品推荐

