javaSE5中新增的一种返回类型,在子类中的被覆盖方法可以返回父类方法的返回类型的某种子类型
代码表示为:
//类A class A{ public String toString(){ return "A"; } } //A类的子类 class As extends A{ public String toString(){ return "As"; } } //B类 class B { //一个返回A类的方法 A process(){ return new A(); } } //B类的子类 class Bs extends B{ //一个返回A类子类的被覆盖方法 As process(){ return new As(); } } public class XieBian { public static void main(String[] args) { B b = new B(); A a = b.process(); System.out.println(a); b = new Bs(); //此时调用方法返回的是A类的子类 a = b.process(); System.out.println(a); } }
在B类中有一个process方法返回的是A类的对象,在B类的子类中重写了process方法并且返回的是A类的子类对象。运行结果如下: