美文网首页
java协变函数

java协变函数

作者: 抓兔子的猫 | 来源:发表于2016-10-25 10:18 被阅读70次

    java 方法名相同,参数列表相同,返回值不同一般会报错,但有一种特殊情况 :
    java 5.0添加了对协变返回类型的支持,即子类覆盖(即重写)基类方法时,返回的类型可以是基类方法返回类型的子类。
    协变返回类型允许返回更为具体的类型

    class Grain{  
        public String toString(){  
            return "Grain";  
        }  
    }  
    class Wheat extends Grain{  
        public String toString(){  
            return "Wheat";  
        }  
    }  
    class Mill{  
        Grain process(){  
            return new Grain();  
        }  
    }  
    class WheatMill extends Mill{  
        Wheat process(){  
            return new Wheat();  
        }  
    }  
    public class CovariantReturn {  
        public static void main(String [] args){  
            Mill m = new Mill();  
            Grain g = m.process();  
            System.out.println(m.process());  
               
            m = new WheatMill();  
            System.out.println(m.process());  
       
        }  
    }  ```
    
    输出 Grain
           Wheat

    相关文章

      网友评论

          本文标题:java协变函数

          本文链接:https://www.haomeiwen.com/subject/uarruttx.html