zoukankan      html  css  js  c++  java
  • 协变返回类型

    package extendandclear.one;
    
    public class Main {
    
        public static void main(String[] args) {
            Mill m = new Mill();
            Grain g = m.process();
            System.out.println(g);
            m = new WheatMill();
            g = m.process();
            System.out.println(g);
        }
    
    }
    
    class Grain {
        @Override
        public String toString() {
            return "Grain";
        }
    }
    
    class Wheat extends Grain {
        @Override
        public String toString() {
            return "Wheat";
        }
    }
    
    class Mill {
        Grain process() {
            return new Grain();
        }
    }
    
    class WheatMill extends Mill {
        /*
         * Java SE5以后允许重写方法返回值是基类方法返回值的子类,这种方式叫协变返回类型;
         * 如果子类某方法和父类某方法的方法名和参数列表相同,基类该方法的返回类型必须为子类 该方法返回类型的父类,否则编译报错。
         */
        Wheat process() {
            return new Wheat();
        }
    }
    
  • 相关阅读:
    spring boot 与 spring cloud 版本映射
    Java锁
    并发编程(二)
    并发工具类和线程池
    并发编程
    Map双列集合(二)
    Map双列集合(一)
    单列集合List
    类加载
    JVM字节码与代码优化
  • 原文地址:https://www.cnblogs.com/wjc920/p/9256168.html
Copyright © 2011-2022 走看看