111,129
社区成员
发帖
与我相关
我的任务
分享public abstract class Animal
{
public virtual void EatFood()
{
Console.WriteLine("基类Animal中的EatFood");
}
public void Breed()
{
Console.WriteLine("基类Animal中的Bread");
}
}
public class Chicken : Animal
{
public override void EatFood()
{
Console.WriteLine("派生类Chicken中的EatFood");
}
}
public class Cow : Animal
{
public override void EatFood()
{
Console.WriteLine("派生类Cow中的EatFood");
}
public void Moo()
{
Console.WriteLine("派生类Cow中的Moo");
}
}
class Program
{
static void Main(string[] args)
{
//Cow myCow = new Cow();
//Chicken myChicken = new Chicken();
//myCow.EatFood();
//myChicken.EatFood(); //派生类中的方法
//Console.ReadKey();
//多态性 通过类型转换 用基类对象去调用EatFood
Cow myCow = new Cow();
//Animal myAnimal=(Animal)myCow;
Animal myAnimal = myCow;
myAnimal.EatFood();
Console.ReadKey(); //但是override之后只能调用派生类中的方法
}
}myAnimal.GetType().FullName看看,什么“基类对象”大致纯粹是一种幻觉。