多态是同一个行为具有多个不同表现形式或形态的能力
多态可以是静态或动态的。
* 静态多态性:函数的响应是在编译时发生的
* 动态多态性:函数的响应是在运行时发生的
静态多态性
- 方法重载
- 运算符重载
运算符重载
暂略
方法的重载
同一作用域内,可以对相同的函数名有不同的定义,参数类型和个数的不同都表示不同的方法。不能重载返回类型不同的函数声明。
动态多态性
- 抽象类
- 虚方法
抽象类
抽象类用来定义一类事物(子类)的共同特征。子类必须实现抽象类的行为,实现可以不同(多态)。一般抽象类用来统筹一类具有相同特征的类,比如一个类的不同版本,不同版本的类可以有不同的实现,但是相同部分需要用抽象类进行约束。
// 抽象剃须刀概念
public abstract class shaver
{
// 描述剃须刀的通用功能:剃须
public abstract void shaving();
}
// 从剃须刀继承出手动剃须刀
public class handShaver : shaver
{
// 重写剃须刀的剃须功能
public override void shaving()
{
// 手动剃须刀的实现:
// 确认刀子锋利,直接上头
}
}
// 从剃须刀继承出电动剃须刀
public class electricShaer : shaver
{
// 重写剃须刀的剃须功能
public override void shaving