重载和重写的关于返回值类型的区别?

若子类中的方法与父类中的某一方法具有相同的方法名、返回类型和参数表,则新方法将覆盖原有的方法。

重写(override)方法原则

  1. 子类的方法的名称必须和所覆盖的方法相同
  2. 子类的方法的参数必须和所覆盖的方法相同
  3. 子类的返回类型必须和所覆盖的方法相同 (除过子类中方法的返回类型是父类中返回类型的子类)
  4. 子类抛出异常小于等于父类方法抛出异常
  5. 子类访问权限大于等于父类方法访问权限

重载(overload)方法原则:

  1. 方法名必须相同

  2. 方法的参数列表不相同(包括参数类型,参数个数,参数顺序)

  3. 方法的返回类型和方法的修饰符可以不相同

总结:方法重载的返回值类型可以不相同,方法重写的返回类型必须相同,否则编译报错。


版权声明:本文为weixin_40307206原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。