理解C#多态性之前首先理解一下什么叫多态。同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果,这就是多态性。C#多态性通过派生类覆写基类中的虚函数型方法来实现。
C#多态性分为两种,一种是编译时的多态性,一种是运行时的多态性。
◆编译时的多态性:编译时的多态性是通过重载来实现的。对于非虚的成员来说,系统在编译时,根据传递的参数、返回的类型等信息决定实现何种操作。
◆运行时的多态性:运行时的多态性就是指直到系统运行时,才根据实际情况决定实现何种操作。C#中运行时的多态性是通过覆写虚成员实现。
C#代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public class Vehicle
{
public virtual string Run()
{
return "aaa";
}
}
public class Car : Vehicle
{
public override string Run()
{
return "running a car!";
}
}
public class Airplane : Vehicle
{
public override string Run()
{
return "fly a Airplance!";
}
}
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
Vehicle v = new Vehicle();
Car c = new Car();
Airplane a = new Airplane();
Console.WriteLine(v.Run());
Console.WriteLine(c.Run());
Console.WriteLine(a.Run());
}
}
}
|