方法重载、覆盖和重写的区别
重载(Overload):
重载:在一个类中,方法名相同,但参数列表不同。对于方法来说,方法名和参数列表共同组成了方法的标识,因此在一个类中允许存在两个相同名称的方法,只要方法的参数列表不完全相同(参数数量或参数类型不同)。这时称该方法具有同名的重载形式,即方法名相同而标识不同。
访问修饰符:可以不相同
返回值:可以不相同
方法名:相同
参数列表:必须不同
覆盖(new):
覆盖:有时不希望派生类一成不变地继承基类中的所有成员,使用new关键字进行修饰,可以覆盖基类中的同名成员。
访问修饰符:可以不相同
返回值:可以不相同
方法名:相同
参数列表:相同
重写(Override):
重写:将基类的方法成员定义为虚拟方法(使用关键字virtual修饰),在派生类中对虚拟方法进行重载(使用关键字override修饰)。
类成员的虚拟只能用于方法,不能用于字段。
位置:存在于继承关系的类中
访问修饰符:相同,且不能是private
返回值:相同
方法名:相同
参数列表:相同