协变和抗变

来源:互联网 发布:塞班s40软件下载 编辑:程序博客网 时间:2024/05/01 13:30

在OO中,协变是指按照继承链正向改变,抗变是指逆向改变.

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();}}//抗变class KangBian extends Wheat{Grain process(){return new Grain();}}public class NewTest{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);KangBian k = new KangBian();g = k.process();System.out.println(g);}}

<完>

0 0
原创粉丝点击