比如说直升机,战斗机,都继承于飞机这个类,这种继承于同一个类(也就是说本质上是同一个东西),但是不同形态(比如说飞行方式不同)的这种现象叫多态。。。
public abstract class People{
protected virtual void Say()
{
// Say hello world
}
}
public class Zhangsan:People
{
protected override void Say()
{
// Say My name is "zhangsan"
base.Say();
}
}
public class Lisi : People
{
protected override void Say()
{
// Say My name is "Lisi"
base.Say();
}
}
同一个方法,不同的人有不同的状态!这样好理解吗?
重写
多态性是指”多种形式“
它使用不同的实例而执行不同的操作
多台包括方法的重写和方法的重载
//基类
public class animal
{
public virtual void paint()//基类虚函数的定义
{
System.Web.HttpContext.Current.Response.Write("animal 的 paint()方法被调用<br/>");
}
}
public class bird : animal//从动物类中派生出鸟类
{
public override void paint()
{
System.Web.HttpContext.Current.Response.Write("bird 的 paint()方法被调用<br/>");
}
public void Show()
{
System.Web.HttpContext.Current.Response.Write("bird 的 Show()方法被调用<br/>");
}
}
应用页面
animal ani = new animal();//创建基类对象
bird pigeon = new bird();//创建派生类对象
ani.paint();//调用基类虚函数
ani = pigeon;
ani.paint();//通过基类对象调用派生类对基类虚函数的覆盖
执行结果
animal 的 paint()方法被调用
bird 的 paint()方法被调用