来自父类java的arraylist中的子类对象的方法调用

uurity8g  于 2021-07-12  发布在  Java
关注(0)|答案(1)|浏览(514)

所以我有一个父类,它有一系列子类,用于我需要在程序中使用的一些对象。

class parentClass{

}

class childClass1 extends parentClass {

}

class childclass2 extends parentClass {

}

父类有两个变量及其getter和setter以及一个超级构造函数。子类有独特的方法,其中一个有另外一组变量,需要它们自己的getter和setter,它们都有自己的构造函数,这样我就可以创建对象(这就是为什么我不使用抽象类)。
我需要一个可以用来保存不同子类类型的对象和调用方法的数据结构。我尝试将其作为数组列表来执行,但我不确定如何声明它如果我将其作为,我尝试实现并填充数组列表,如下所示:

List<parentClass> listofthings = new ArrayList<parentClass>();

listofthings.add(new childclass1(1, "String1"));
listofthings.add(new childclass2(2, "String2", "uniqueString", 2.2, false)); ...etc.

似乎无法正常工作,因为我只能调用从父类继承的公共方法。有什么建议吗?

2guxujil

2guxujil1#

你可以用 instanceOf 要检查对象是否是某个特定类的示例,请将示例强制键入其类,然后才能使用其方法。
例如:

parentClass obj = listofthings[0];
if( obj instanceof childClass1){
   childClass1 class1 = (childClass1) obj;
   // now class1 objc will have the childClass1 methods.
}

相关问题