协办返回类型:

  1. 导出类中覆盖基类的方法,可以返回基类方法中返回类型的某一个导出类。
  1. package com.zx.test08;
  2. class Grain{
  3. @Override
  4. public String toString() {
  5. return "Grain";
  6. }
  7. }
  8. class Wheat extends Grain{
  9. @Override
  10. public String toString() {
  11. return "Wheat";
  12. }
  13. }
  14. class Mill{
  15. Grain procss(){
  16. return new Grain();
  17. }
  18. }
  19. class WhertMill extends Mill{
  20. @Override
  21. Wheat procss() {
  22. return new Wheat();
  23. }
  24. }
  25. public class CovariantReturn {
  26. public static void main(String[] args) {
  27. Mill mill = new Mill();
  28. Grain grain = mill.procss();
  29. System.out.println(grain);
  30. mill=new WhertMill();
  31. grain=mill.procss();
  32. System.out.println(grain);
  33. }
  34. }

示例详解:

Mill中的procss()返回的是Grain类,因为 Wheat类是Grain的导出类。所以在Mill的导出类 WhertMill中被覆盖的 procss可以返回Wheat的类型