设计模式之里氏替换原则

代码示范:

#include<iostream>
using namespace std;
class A
{
public:
    void foo()
    {
        cout << "A()" << endl;
    }
};
class B :public A
{
public:
    void foo()
    {
        cout << "B()" << endl;
    }

};
int main()
{
    A a;
    B b;
    a.foo();
    b.foo();
    while (1);
    return 0;
}

输出:

既然是public继承,那么父类的非虚函数部分应该被完全的继承下来,不应该修改,这里却定义了同名的函数企图重新定义。

原文地址:https://www.cnblogs.com/SunShine-gzw/p/13255666.html