将子类型转换为超类型

时间:2015-04-09 23:36:10

标签: java

我有一个抽象的超类A,以及一个扩展这个类的子类B.

public abstract class A {

}

public class B extends A {


}

我有一个方法返回类型A,但对象B

public A fetchType() {
    A a = new B();
    return a;

}

当我调用fetchType方法时,我想实际获得对象A.在这种情况下,我可能必须将B转换为A,所以我得到A.有人可以建议我该怎么做?

1 个答案:

答案 0 :(得分:2)

如果类型是抽象的,则无法创建对象。

此类A是抽象类,这意味着您将永远无法创建对象A

不允许这样做:A a = new A();