实现多态的手段
虚方法
1.将父类的方法标记为虚方法,使用关键字virtual,这个函数可以被子类重新写一遍
2.将子类的方法使用关键字override重写函数
using System;
namespace 多态虚方法
{
class Program
{
static void Main(string[] args)
{
Student s = new Student("张三");
YeShow y = new YeShow("Monster");
Meinv m = new Meinv("西施");
ShuaiGe g = new ShuaiGe("丁一一");
Person[] per = {s,y,m,g};
for (int i = 0; i < per.Length; i++)
{
per[i].SayHello();
}
}
}
public class Person//创建父类Person和方法
{
private string _name;
public string Name
{
get { return _name; }
set { _name = value; }
}
public Person(string name)
{
this.Name = name;
}
public virtual void SayHello()
{
Console.WriteLine("我是人类");
}
}
public class Meinv : Person
{
public Meinv(string name):base(name)
{
}
public override void SayHello()
{
Console.WriteLine("我是美女,我叫{0}",this.Name);
}
}
public class ShuaiGe : Person
{
public ShuaiGe(string name):base(name)
{
}
public override void SayHello()
{
Console.WriteLine("我是帅哥,我叫{0}",this.Name);
}
}
public class Student : Person
{
public Student(string name):base(name)
{
}
public override void SayHello()
{
Console.WriteLine("我是学生,我叫{0}",this.Name);
}
}
public class YeShow : Person
{
public YeShow(string name):base(name)
{
}
public override void SayHello()
{
Console.WriteLine("我是野兽,我叫{0}",this.Name);
}
}
}