C# 无法强制转换类型为';多态性。车辆';输入';车
这是我的类彼此继承,现在我尝试调用派生类方法。我们都知道,polymorhpism允许您在运行时通过基类引用变量调用派生类方法。但我在这里做的改动很少,我通过使用父类引用变量和父类对象通过强制转换来调用它C# 无法强制转换类型为';多态性。车辆';输入';车,c#,C#,这是我的类彼此继承,现在我尝试调用派生类方法。我们都知道,polymorhpism允许您在运行时通过基类引用变量调用派生类方法。但我在这里做的改动很少,我通过使用父类引用变量和父类对象通过强制转换来调用它 public class vehicles { public string name = "genreal"; public string category = "general"; public virtual void type() { C
public class vehicles
{
public string name = "genreal";
public string category = "general";
public virtual void type()
{
Console.WriteLine(" my name is " + name + " my category is " + category + " I am from Vehicles class");
}
}
public class bike : vehicles
{
public override void type()
{
name = "Honda";
category = "Bike";
Console.WriteLine("my name is " + name + " my category is " + category + " I am from Bike class");
}
}
public class Car : vehicles
{
public override void type()
{
name = "Suzuki";
category = "Car";
Console.WriteLine(" my name is " + name + " my category is " + category + " I am from car class");
}
}
这导致异常无法将“polymorphics.vehicles”类型的对象强制转换为“polymorphics.Car”类型
是因为我们不能将父类对象强制转换为子类吗?我不确定,请指导我您不能从父类中强制转换子类。
您需要将var创建为Car
,从那里您可以访问Car
方法
vehicles V = new vehicles();
((Car)V).type();
Console.ReadLine();
从那里您可以访问父属性和子属性。正确。不能将父类强制转换为子类(除非具体类实际上是派生类型)
Car c = new Car();
c.type();