java override 协变返回类型

一直没有注意到这问题,今天又看thinking in java时看到了这句话:
JAVA SE5中添加了协变返回类型,它表示在导出类中的被覆盖方法可以返回基类中方法返回值的某种导出类型,用代码表示如下:
public class A {
	public A method() {
		System.out.println("A");
		return null;
	}
}

public class B extends A {
	@Override
	public B method() {
		System.out.println("B");
		return null;
	}

        public static void main(String[] args) {
		A a = new B();
		a.method();
	}
}


B类覆盖了A中的method方法,运行打印出 B

你可能感兴趣的:(覆盖,协变)