多态的实现必须要基于继承,多态意在让一个对象(一般为父类)能够表现出多种的类型、状态。
那么我们如何去实现?在前我们用到的是里氏转换(详见作者里氏转换文章),但是里氏转换代码量冗余,如果新增修改会极为不便,今天给大家带来新的知识点——面向对象多态之虚方法。
知识点回顾:用里氏转换让父类表现出子类的特征
static void Main(string[] args)
{
Person person = new Person("朱小明");
Chinese chinese = new Chinese("刘德华");
Japanese japanese = new Japanese("八嘎噶");
Person [] per = {person, chinese, japanese};
for (int i = 0; i < per.Length; i++)
{
if (per[i] is Chinese)
{
((Chinese)per[i]).SayHi();
}
else if (per[i] is Japanese)
{
((Japanese)per[i]).SayHi();
}
else
{
per[i].Sa