覆盖:子类覆盖父类函数
覆盖的特征是:
- 分别位于子类和父类中
- 函数名字和参数都相同
- 父类的函数是虚函数 virtual
隐藏:子类隐藏了父类函数
隐藏的特征是:
- 子类的函数与父类的函数名字相同,但是参数不同,父类函数被隐藏
- 子类的函数与父类的函数名字相同,参数也相同,但是父类没有 virtual,父类被隐藏
总结
IF (子类函数与父类的函数名字相同,但是参数不同)
父类函数被隐藏;
ELSE IF (子类函数与父类的函数名字相同 && 参数也相同 && 父类函数没有 virtual)
父类函数被隐藏;
ELSE IF (子类函数与父类的函数名字相同 && 参数也相同 && 父类函数没有 virtual)
父类函数被覆盖;