JAVA协变返回类型

协变返回类型定义:

在面向对象程序设计中,协变返回类型指的是子类中的成员函数的返回值类型不必严格等同于父类中被重写的成员函数的返回值类型,而可以是更"狭窄"的类型。

public class TestRun {
	public static void main(String[] args) {
		A a = new A();
		B b = new B();
		System.out.println(a.instance());//A
		System.out.println(b.instance());//B
	}
}

class A{
	public A instance(){
		return new A();
	}
	@Override
	public String toString() {
		// TODO Auto-generated method stub
		return "A";
	}
}

class B extends A{
	public B instance(){
		return new B();
	}
	@Override
	public String toString() {
		// TODO Auto-generated method stub
		return "B";
	}
//  error:	
//	public C instance(){
//		return new C();
//	}
}

class C{
	
}

猜你喜欢

转载自blog.csdn.net/qq_30097741/article/details/80615133