多态-不同对象作用于相同方法,呈现的结果不同
表现形式为A类 对象名=new B类() A类和B类之间存在直接或间接的继承关系,A类叫做申明类,B类叫做实例类
运行时多态:重载(overload)
编译时多态:重写(override)
重载:方法名相同,形参的类型个数顺序不同,只与形参有关,与返回值无关
class People
{
public int Age { get; set; }
public string Name { get; set; }
public People()
{
}
public People(string name,int age)
{
this.Name = name;
this.Age = age;
}
public void Eat()
{
}
public void Eat(string s,int i)
{
}
public void Eat(int i,string s)
{
}
}
重写:继承父类的虚方法、抽象方法、override修饰的方法或实现接口
class People
{
public int Age { get; set; }
public string Name { get; set; }
public People()
{
}
public People(string name,int age)
{
this.Name=name;
this.Age=age;
}
public virtual void SayHi()
{
Console.WriteLine("{0},你好!",Name);
}
}
class Student:People
{
public override void SayHi()
{
Console.WriteLine("{0}学生好",Name);
}
}