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);
}
}
}
C#多态之虚方法
最新推荐文章于 2022-07-04 10:20:17 发布