Java 创建继承对象的数组

Java 创建继承对象的数组,java,arrays,class,main,extends,Java,Arrays,Class,Main,Extends,我试图创建一个方法,将某个对象添加到继承对象的数组中 public class Biblio { Biblio[] Tab; static int i=0; Biblio(); void insert(Biblio O){Tab[i]=O;i++;}} 在主类中,我创建了3个相互扩展的类对象:表示文档从Biblio扩展,文章从Document扩展,书籍从Article扩展 public class TestBiblio { public static void main(String

我试图创建一个方法,将某个对象添加到继承对象的数组中

public class Biblio {
Biblio[] Tab; static int i=0;
Biblio();
void insert(Biblio O){Tab[i]=O;i++;}}     
在主类中,我创建了3个相互扩展的类对象:表示文档从Biblio扩展,文章从Document扩展,书籍从Article扩展

public class TestBiblio {
public static void main(String[] args) {
    Document A= new Document();
    Article B= new Article();
    Book C= new Book();
    Biblio D= new Biblio();
    D.insert(A);
    D.insert(B);
    D.insert(C);}}
运行代码后,线程“main”java.lang.NullPointerException错误中出现异常。
我是一名java初学者,我无法找出哪里出了问题。

您从未初始化用于插入的数组。当您执行Tab[i]时,您正在取消对空指针的引用。 有点像

    public class Biblio {
           Biblio[] Tab; 
           static int i=0;
           public Biblio() {
                  Tab = new Biblio[5];
           }
          void insert(Biblio O){
                 Tab[i]=O;i++;
           }
      }     

您从未初始化用于插入的数组。当您执行Tab[i]时,您正在取消对空指针的引用。 有点像

    public class Biblio {
           Biblio[] Tab; 
           static int i=0;
           public Biblio() {
                  Tab = new Biblio[5];
           }
          void insert(Biblio O){
                 Tab[i]=O;i++;
           }
      }     

您应该执行如下操作:Biblio[]Tab=new-Biblio[指定计数];而且你的构造函数没有body,你能发布完整的堆栈跟踪吗?所有的类都在同一个包/文件夹中吗?是的,它起作用了,我必须添加Tab=new Biblio[5];在构造函数中,您应该执行如下操作:Biblio[]Tab=new Biblio[specify_count];而且你的构造函数没有body,你能发布完整的堆栈跟踪吗?所有的类都在同一个包/文件夹中吗?是的,它起作用了,我必须添加Tab=new Biblio[5];在构造函数中。