在C#中定义一个虚方法需要使用的关键字是什么?
1个回答
展开全部
子类可以对父类中的虚方法进行重写,虚方法是多态特性的一种体现
C#中的虚方法使用virtual关键字定义
public virtual void eat();
override关键字作用是对父类的virtual方法进行重写
public override void eat();
代码举例:
using System;
using System.Collections;
public class Animal
{
public Animal() { }
public virtual void eat()
{
}
}
public class dog:Animal
{
public override void eat()
{
//如果父类的虚方法中有我们需要的数据,可以在子类的覆盖方法中调用它:
//base.eat();
Console.WriteLine("狗吃骨头");
}
}
public class cat:Animal
{
public override void eat()
{
Console.WriteLine("猫吃鱼");
}
}
public class panda:Animal
{
public override void eat()
{
Console.WriteLine("熊猫吃竹子");
}
}
public class MainFun
{
static void Main()
{
Animal[] anim = new Animal[3];
anim[0] = new dog();
anim[1] = new cat();
anim[2] = new panda();
anim[0].eat();
anim[1].eat();
anim[2].eat();
}
}
C#中的虚方法使用virtual关键字定义
public virtual void eat();
override关键字作用是对父类的virtual方法进行重写
public override void eat();
代码举例:
using System;
using System.Collections;
public class Animal
{
public Animal() { }
public virtual void eat()
{
}
}
public class dog:Animal
{
public override void eat()
{
//如果父类的虚方法中有我们需要的数据,可以在子类的覆盖方法中调用它:
//base.eat();
Console.WriteLine("狗吃骨头");
}
}
public class cat:Animal
{
public override void eat()
{
Console.WriteLine("猫吃鱼");
}
}
public class panda:Animal
{
public override void eat()
{
Console.WriteLine("熊猫吃竹子");
}
}
public class MainFun
{
static void Main()
{
Animal[] anim = new Animal[3];
anim[0] = new dog();
anim[1] = new cat();
anim[2] = new panda();
anim[0].eat();
anim[1].eat();
anim[2].eat();
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询