当前位置: 首页 > 图灵资讯 > java面试题> 方法重载和方法重写

方法重载和方法重写

来源:图灵教育
时间:2025-01-06 09:29:04

方法重载(Overloading)

  • 定义:方法重载是指在同一个类中,多个方法有相同的名字但参数不同。参数不同可以指参数的数量不同,或者参数的类型不同。

  • 返回类型:方法重载与返回类型无关,仅仅依赖于方法名和参数列表。所以即使返回类型不同,但如果方法名和参数列表相同,也不会构成重载。

  • 应用场景:方法重载通常用于实现相似功能的多个方法,比如一个print方法可以打印字符串、整数、浮点数等不同类型的数据。

  • 编译时多态:重载是一种编译时多态性,调用哪个方法是在编译时决定的。

方法重写(Overriding)

  • 定义:方法重写是指在子类中重新定义父类中的一个方法。这个方法在子类中有相同的名称、参数和返回类型。

  • 返回类型:方法重写要求返回类型必须与被重写的方法相同,或者是其子类型。

  • 访问修饰符:重写方法的访问修饰符不能比父类方法的更严格。例如,如果父类方法是public,子类中重写的方法也必须是public

  • 应用场景:方法重写用于实现多态性,允许子类提供具体实现,从而改变或扩展父类的行为。

  • 运行时多态:重写是一种运行时多态性,调用哪个方法是在运行时决定的,这通常与对象的实际类型有关。

举个例子帮助理解

  • 方法重载:想象一下你有一个工具箱,里面有多个螺丝刀,虽然它们的作用都是拧螺丝,但大小不同。你会根据不同的螺丝选择合适的螺丝刀,这就像选择不同参数的重载方法。

  • 方法重写:假设你买了一辆车(父类),但你想给它换个更好的引擎(重写方法)。虽然外表看起来一样,但由于引擎的不同(方法的具体实现不同),它的性能可能会更好。