在java中 方法的重写和重载有什么区别
方法的重写(Override)和重载(Overload)是Java中的两种不同的方法多态性实现方式。
- 重载(Overload)
方法的重载是指在一个类中定义多个同名方法,但是参数列表不同(参数类型、个数或顺序)。重载方法可以有不同的返回类型,但是不能仅仅是返回类型不同。
在调用重载方法时,编译器会根据传入的参数类型和个数,自动匹配调用对应的重载方法。
- 重写(Override)
方法的重写是指在子类中定义一个和父类同名、参数列表和返回值都相同的方法,但是方法体不同。重写方法不能有更严格的访问修饰符,只能和父类相同或更宽松。
在调用重写方法时,会根据对象的实际类型,调用对应的重写方法。
区别:
重载是在一个类中定义多个同名方法,参数列表不同,目的是为了提高代码复用性和灵活性;
重写是在子类中定义一个和父类同名、参数列表和返回值都相同的方法,目的是为了实现多态性;
重载是编译时多态,重写是运行时多态;
重载方法的调用是根据传入的参数类型和个数,自动匹配调用对应的重载方法,重写方法的调用是根据对象的实际类型,调用对应的重写方法。
原文地址: https://www.cveoy.top/t/topic/hp5i 著作权归作者所有。请勿转载和采集!