区分方法的重载(overload)与重写(override/overwrite)
时间: 2024-05-24 19:11:07 浏览: 95
重载(overload)和重写(override/overwrite)是两个不同的概念。
重载指的是在同一个作用域内,定义了多个名称相同但参数个数或类型不同的函数,这些函数可以根据传入的参数的不同调用不同的函数。重载可以在编译时确定调用哪个函数。
重写指的是子类重新定义了父类中已有的方法,使得子类对象在调用该方法时执行子类中的方法而不是父类中的方法。重写是在运行时确定调用哪个方法。
简单来说,重载是编译时多态,重写是运行时多态。
相关问题
overload、override、overwrite的区别
1. Overload(重载):指在同一个作用域内,通过函数名相同但参数列表不同,实现多个函数的定义。在调用时,根据传入的参数类型和数量的不同,自动匹配对应的函数进行调用。
2. Override(重写):指在子类中实现与父类中同名同参数列表的函数,以覆盖父类中的同名函数,实现多态的功能。
3. Overwrite(覆盖):指在同一个文件、同一个函数作用域内,重新定义同名的函数,覆盖之前的定义。这种行为会导致之前的定义无效,不推荐使用。
override和overwrite和overload
这三个词都与方法(函数)有关:
1. Override(覆盖)指的是在子类中重新定义(覆盖)父类中的方法。子类中的方法与父类中的方法具有相同的名称、参数列表和返回类型。当子类对象调用该方法时,会优先调用子类中的方法,而不是父类中的方法。
2. Overwrite(重写)是指在同一类中重新定义(覆盖)已有的方法。在同一类中,我们可以重新定义已有的方法,使其具有不同的行为。这个过程也被称为方法的重载(overload)。
3. Overload(重载)是指在同一类中定义多个方法,它们具有相同的名称但参数列表不同。在调用这个方法时,编译器会根据传递给方法的参数类型和数量来判断应该调用哪个方法。
总之,Override指的是子类重写了父类的方法,Overwrite指的是同一类中重新定义了已有的方法,而Overload指的是在同一类中定义了多个方法,它们具有相同的名称但参数列表不同。
阅读全文