多态是同一个行为具有多个不同表现形式或形态的能力。
假如有个图形类为基类,有个绘制功能。专门绘制基础图形。现在来了个方形和圆形,都继承于图形基类。这样大家都有了基类的绘制功能。这显然不对。这个时候圆形对应需要绘制圆形图案,方形需要绘制方形。那么如何解决了。
这时候就需要用到多态了,即:同一个行为具有多个不同表现形式或形态的能力。
虚方法和重写对应的关键字分别为virtual
,override
具体看下代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 多态
{
public class CirCle: Shape
{
public override void Draw()
{
Console.WriteLine("绘制圆形");
}
}
public class Rectangle : Shape
{
public override void Draw()
{
Console.WriteLine("绘制方形");
}
}
public class Shape
{
public int Width { get; set; }
public int height { get; set; }
public virtual void Draw()
{
Console.WriteLine("绘制图形");
}
}
}
using System;
using System.Collections.Generic;
namespace 多态
{
class Program
{
static void Main(string[] args)
{
List<Shape> shapes = new List<Shape>();
shapes.Add(new CirCle());
shapes.Add(new Rectangle());
shapes.Add(new Shape());
foreach (var shape in shapes)
{
shape.Draw();
}
Console.ReadKey();
}
}
}
结果:
这样就实现了一个简单的多态。
全网付费课程欢迎咨询QQ:3388486286