Overload 和 Override 的区别。Overload 的方法是否可以改变返回值的类型?
参考解答
- 方法重载(Overload)发生在:
- 同一个类中多个同名方法上,既可以是静态方法也可以是成员方法
- 这些方法名称要相同,但参数个数或类型不同
- 方法重载不关心返回值类型
- 方法重写(Override)发生在:
- 实现类实现了接口中的抽象方法时
- 子类的方法覆盖了父类的方法时:名称相同,参数相同,返回值类型一致
- 子类的方法访问修饰符必须比父类宽泛、返回值类型必须比父类返回值类型 狭窄、声明抛出的异常类型也必须比父类的异常类型狭窄
- 静态方法不能被重写,只能被隐藏