C#中的虚方法有什么作用呢?能举个例子说明吗?谢谢各位大神。。。

2025-06-23 07:02:53
推荐回答(2个)
回答1:

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;


namespace ConsoleApplication1
{
    public class Animal
    {
        public string Name { get; set; }
        public virtual void Eat()
        {
            Console.WriteLine("{0}正在进食……", Name);
        }
    }
    public class Sheep : Animal
    {
        public Sheep() { Name = "羊"; }
        public override void Eat()
        {
            base.Eat();
            Console.Write("吃草!\n");
        }
    }
    public class Tiger : Animal
    {
        public Tiger(){Name ="老虎";}
        public override void Eat()
        {
            base.Eat();
            Console.Write("吃羊!\n");
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            Animala1 = new Sheep();
            Animala2 = new Tiger();
            a1.Eat();
            a2.Eat();
        }
    }
}

一个形象的例子

回答2:

就是让派生类重写的。这样子类就可以有与父类不同的行为。