1.重载:函数名相同;函数的参数个数,参数类型,参数顺序不同;函数的返回值也可以不同;但 是如果只是返回类型不同,函数名及参数相同不可以构成重载;
重载是一种静态多态;多态分为静态多态和动态多态
重载减少了函数名的数量,避免了名字空间的污染,提高程序的可读性
2.重定义:子类重新定义父类中有相同名称的非虚函数(参数列表可以不同),父类的方法就会倍隐藏;
3.重写:子类重新定义父类中有相同名称和参数的虚函数(参数列表必须相同);父类的方法被覆盖了
1)被重写的函数不能是静态(static)的函数,必须是virtual(即该函数在父类中被声明为virtual)
2)重写函数必须有相同的类型,名称和参数列表
3)重写函数的访问修饰符可以不同,在父类是private时,在子类可以是public或者protected