C#多态之虚方法

来源:互联网 发布:fileinput.min.js 编辑:程序博客网 时间:2024/05/29 03:58
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace 多态{    class Program    {        static void Main(string[] args)        {            //多态:让一个对象表现出多种状态(类型)            Chinese cn1 = new Chinese("韩");            Japanese j1 = new Japanese("树下君");            Chinese cn2 = new Chinese("雷");            Person[] pers = { cn1, cn2, j1 };            for (int i = 0; i < pers.Length; i++)            {                pers[i].SayHello();            }            Console.ReadKey();        }    }    public class Person    {        private string _name;        public string Name        {            get { return _name; }            set { _name = value; }        }        public Person(string name)        {            this.Name = name;        }        //将父类标记为虚方法,使用关键字virtual,这个函数可以被子类重新写一遍        public virtual void SayHello()        {            Console.WriteLine("我是人类");        }    }    public class Chinese : Person    {        public Chinese(string name)            : base(name)        {        }        public override void SayHello()        {            Console.WriteLine("我是中国人,我叫{0}", this.Name);        }    }    public class Japanese : Person    {        public Japanese(string name)            : base(name)        {        }        public override void SayHello()        {            Console.WriteLine("我是日本人,我叫{0}", this.Name);        }    }}
0 0