我有3个类,具有主要方法的MainClass,一个名为AbstractClass和Subclass的抽象类,将通过AbstractClass进行扩展。
对象数组是在main方法中从包含1个成员的AbstractClass类型创建的。然后,我将数组的1个元素初始化为Subclass类型(可以吗?)。问题是我无法使用创建的对象(array [0])的getDataToExport()方法。我怀疑出现问题是因为数组是AbstractClass类型...而问题是:这是否有可能实现?我想做的是使用类型为AbstractClass的数组,并用由不同的子类(在此代码中仅是一个-> Subclass)制成的对象填充它,但该类继承了AbstractClass,但我无法使用该子类的方法。
主类与主方法
public class MainClass {
public static void main() {
AbstractClass array[]=new AbstractClass[1];
array[0]= new Subclass(); // is this even allowed?
System.out.println(array[0].getDataToExport()); // Problem!
}
}
Run Code Online (Sandbox Code Playgroud)
抽象类
public abstract class AbstractClass {
}
Run Code Online (Sandbox Code Playgroud)
扩展AbstractClass的子类
public class Subclass extends AbstractClass {
private int dataToExport;
public Subclass(){
this.dataToExport=2;
}
public int getDataToExport() {
return dataToExport;
}
}
Run Code Online (Sandbox Code Playgroud)