如何引用子实例的父实例

时间:2014-03-30 00:52:45

标签: java inheritance

我正在用Java编写一个项目。 我有一个结构,我有对象A,B和C的实例,所有这些都扩展了类Parent。

我想要一个Parent类型的所有对象的列表 - 即我想在此列表中存储任何类型为A,B或C的对象。

我创建了一个带有函数

的列表类
private class Item
{
  private Parent parent;

  public void addItem(Parent set){ /* adds set to the list */};
}

我最初的想法是做这样的事情:

A a = new A(); B b = new B();
addItem(a);
addItem(b);

但是a和b不是父母,他们是A和Bs。

有人可以提出一种方法,可以将As,Bs,Cs的实例添加到父母列表中吗?

1 个答案:

答案 0 :(得分:0)

我相信你的意思是你如何将a,b,c多态化为他们的父超类型?好吧,因为他们将父类型子类型为你定义的add方法,所以它应该隐式地将你的子类型转换为父类型。

否则,如何显式引用子类型的父类型是通过使用类型转换表达式...其表达方式如下:

T_Parent varname = (T_Parent) Name_Subclass;