Java面试——Overload 和 Override 的区别。Overloaded 的方法是否可以改变返回值类型?

2023-12-21 21:46:50

1.Overload 和 Override 是面向对象编程中的两个概念。

  1. Overload(重载):指在同一个类中,有多个方法拥有相同的名称,但参数列表不同。重载的方法可以有不同的返回值类型。重载的目的是为了提供更多的方法选择,以适应不同的参数类型和个数。应用:构造方法重载

  2. Override(覆盖/重写):指在子类中重新定义(覆盖/重写)从父类继承而来的方法。被覆盖的方法必须具有相同的名称、参数列表和返回类型。通过覆盖,子类可以改变继承方法的实现,使其符合子类的特定需求。应用:方法的重写(private修饰的方法不能被重写)

2.关于返回值类型的变化:

  1. Overloaded 的方法可以改变返回值类型。因为重载方法要求参数列表不同,所以返回值类型可以是不同的。这样做是为了增加方法的灵活性,以适应不同的返回值需求。

  2. Override 的方法不能改变返回值类型。子类覆盖的方法必须与父类的方法具有相同的返回类型。这是因为子类需要保持对父类方法的一致性,确保在多态调用时能正确返回父类声明的类型。

3.总结:

  1. Overload 强调的是方法的多样性,在同一类中通过参数列表的不同来实现方法的重载。
  2. Override 强调的是方法的重新定义,在子类中重新实现从父类继承而来的方法,要求方法的名称、参数列表和返回类型都相同。

文章来源:https://blog.csdn.net/m0_66349763/article/details/135139538
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。