第13章 - 多态
嗨,朋友!我是长安。
多态是面向对象的第三大特性,它让程序更加灵活。同一个方法调用,在不同对象上会有不同的表现。
🎭 什么是多态?
多态意味着"多种形态",同一个方法在不同对象上有不同的实现。
class Shape
{
public virtual void Draw()
{
Console.WriteLine("绘制形状");
}
}
class Circle : Shape
{
public override void Draw()
{
Console.WriteLine("绘制圆形 ⭕");
}
}
class Rectangle : Shape
{
public override void Draw()
{
Console.WriteLine("绘制矩形 ▭");
}
}
class Triangle : Shape
{
public override void Draw()
{
Console.WriteLine("绘制三角形 △");
}
}
// 多态的威力
static void Main(string[] args)
{
Shape[] shapes = new Shape[]
{
new Circle(),
new Rectangle(),
new Triangle()
};
foreach (Shape shape in shapes)
{
shape.Draw(); // 同一个方法调用,不同的结果
}
}
输出:
绘制圆形 ⭕
绘制矩形 ▭
绘制三角形 △
📝 本章小结
- 多态让同一方法有不同实现
- 使用
virtual和override实现多态 - 父类引用可以指向子类对象
- 多态提高了代码的灵活性和扩展性
