请问多态的优势到底在哪里啊?
比如,Derivate继承自Base,有个虚函数fun()。
Base A; Derivate B,C;
A *a;
Switch(ConditionPara)
{
case ConditonA:
a = new A;
case ConditionB:
a = new B;
break;
case ConditionC:
a = new C;
break;
}
a->fun();
上述代码感觉跟不用多态的功能差不多啊。
Base A; Derivate B,C;
Switch(ConditionPara)
{
case ConditonA:
A a;
a.fun()
break;
case ConditionB:
B b;
b.fun()
break;
case ConditionC:
C c;
c.fun();
break;
}
感觉上述两个实现都差不多啊。而且,第二种看起来更直接,多态的优势在哪里啊?????