c++ 多态写的很好:【转】C++三大特性之多态(详细)
c++ 多态
#include <iostream>
using namespace std;
class Base
{
public:
virtual void func()
{
cout << "base func" << endl;
}
};
class Derived:public Base
{
public:
void func()
{
cout << "Derived func" << endl;
}
};
int main() {
Base b;
Derived d;
// d.func(); // base func
Base *pb = &b;
Derived *pd = &d;
pb->func();
pd->func();
// 注意
pb = &d;
pb->func(); // base func 如果父类中没有virtual
return 0;
}
python多态:
class A:
def p(self):
print('i am A')
class B(A):
def p(self):
print("i am B")
class C(A):
def p(self):
print('i am C')
class D:
def p(self):
print('i am D')
def fc(obj):
obj.p()
cc = C()
bb = B()
fc(cc)
fc(bb)