重载overload
定义:同一个类中的多个方法具有相同的名称,但参数列表不相同(包括参数个数,参数类型,参数顺序),返回值可相同也可不相同
简记:同类、同名、不同参、返回值可同可异
重写 override
定义:当一个子类继承一个父类,子类中的某一个方法与父类中的某一个方法的名称、参数列表、返回类型完全一致
简记:子继承父、同名、同参、同返的方法,方法体不同
语法:子类使用override修饰方法
原理:在方发表中修改对应的地址
三种方法可以重写:
abstract方法必须在子类重写
virtual方法可以在子类中重写
override方法可以在子类中重写过时的方法
重载和重写的区别
- 所处位置不同:重载在同类中,重写在子父类中
- 定义方式不同:重载定义是同名不同参,重写定义是同名同参
- 调用方式不同:重载使用相同的对象已不同参数调用,重写使用不同对象已相同方法参数调用
- 多态时机不同:重载时编译时多态,重写是运行时多态