如果父类与子类中拥有同名的函数:
1. 如果父类函数前没有virtual,且父子同名函数的参数列表不同(参数个数、类型和顺序至少有一个不同),
则构成重载,用父类指针调用该函数名,调用的是子类函数,父类函数被覆盖 / 隐藏 / 不可见
(注:若两个函数参数列表相同,只有返回值类型不同,不构成重载)
2. 如果父类函数前有virtual,且父子同名函数的参数列表相同,
则构成多态,用父类指针调用该函数名,看指针指向的是父类对象还是子类对象,指向父类对象调用的是父类函数,指向子类对象调用的是子类函数