一,定义
多态:
1,多态是同一个行为具有多个不同表现形式或形态的能力。
2,多人做一件事情,结果不一样
多态性可以是静态的或动态的。在静态多态性中,方法的响应是在编译时发生的。在动态多态性中,方法的响应是在运行时发生的。
静态多态性:在编译时,方法和对象的连接机制被称为早期绑定,也被称为静态绑定。C# 提供了两种技术来实现静态多态性。分别为:方法重载、运算符重载
动态多态性是通过 抽象类 和 虚方法 实现的。
二,实现多态的两个要素
1)子类重写父类方法
2)使用父类的类型(子类转换为父类:向上转型)
public abstract class Shape
{
public abstract double GetArea();
public abstract double GetPerimeter();
}
class Circle : Shape
{
private double r;
public double R
{
get{return r;}
set{r = value;}
}
public Circle(double r)
{
this.r = r;
}
public override double GetArea()
{
return Math.PI * this.R * this.R;
}
public override double GetPerimeter()
{
return 2 * Math.PI * this.R;
}
}
三,实现多态的好处
1. 应用程序不必为每一个派生类编写功能调用,只需要对抽象基类进行处理即可。大大提高程序的
可复用性。//继承
2. 派生类的功能可以被基类的方法或引用变量所调用,这叫向后兼容,可以提高可扩充性和可维护
性。 //多态的真正作用