什么是polymorphism?该怎么解决

什么是polymorphism?
非科班出生,最近总有人问这个问题。所以想彻底了解一下。

另外,哪里有好的文章(网络)给个连接。

------解决方案--------------------
多态
------解决方案--------------------
多态,是面向对象编程的精髓,这个不明白,学多少面向对象的知识也没用。
所以...,楼主有时间一定要把这个搞明白。

多态和模板完全不一样,具体可以看书或搜索。
字面意思就是:同一种形态,在不同的时候却表现出不同的动作。
------解决方案--------------------
多态就是对不同的对象作出不同的反应,具体在C++里可以说就是继承里的虚函数的问题,

楼主可以看看虚函数那一章,就了解了.

举个小例子吧

class Base
{
public:
virtual void print(){cout < < "Base " < <endl;} //虚函数
};

class Derived
{
public:
void print(){cout < < "Derived " < <endl;} //子类重写虚函数,与父类构成多态
};

int main()
{
Base *pb=new Derived; //当父类的指针指向子类对象时,将启动多态性
pb-> print(); //多态性启动,pb虽然是父类类型的指针,但由于它指向了子类对象,所以
} //现在pb-> print()调用的将是子类的那个print()函数,这就是多态性了

------解决方案--------------------
多态是类继承的问题,是同一个函数不同的行为特征。当在类里的函数声明为virtual时便具有了多态的性质。如下:
calss A
{
public:
bool fun(){cout < < "A " < <endl;};
.....
}
class B:public A
{
public:
bool fun(){cout < < "B " < <endl;};
.....
}


GF(A& exm)
{
exm.fun();
}

int main()
{
A a;
B b;
GF(a);
GF(b);
return 0;
}
输出:A
A
如果把B的fun()声明为virtual
输出:A
B
------解决方案--------------------
多态。c++多态实现有:函数重载,虚函数,模板函数,模板类