对象作为数组

owc*_*wca 1 java arrays constructor

我需要创建类Dog和PurebredDog扩展Dog.问题是Dog可以同时是单个对象和对象数组(Dogs和PurebreedDogs:

 Dog pack[]={new Dog(76589,"As","black",18,
                    "Ann","Kowalsky"),
           new PurebreedDog(45321,"Labrador","Elf","black",25, 
                          "Angus","Mati","Barbara","Smith"),
           new Dog(102467,"Gamma","brown",89,
                    "Josh","Coke"),
            new PurebreedDog(9678,"York","Theta","brown",8,
                    "Emka","Figaro","Alice","Cat")};    

for(int i=0; i < pack.length; i++)
  System.out.println(pack[i]+"\n\n");
Run Code Online (Sandbox Code Playgroud)

如何编写适当的构造函数Dog?你可以这样做:

public Dog(String name, etc){
}
Run Code Online (Sandbox Code Playgroud)

但是如何为狗阵列编写构造函数?

public Dog(Dog[]tab) ?
Run Code Online (Sandbox Code Playgroud)

然后如何回忆它的元素?是pack[]2D阵列?

Jus*_*ier 5

为了简化事情,一个实例Dog应该引用一只狗.所以你的构造函数看起来应该类似(数据类型只是例子):

Dog(int ID, String color, String name, ...)
Run Code Online (Sandbox Code Playgroud)

PurebreedDog将子类化Dog并提供任何其他构造函数参数(和成员),如breed等.

为了应对多狗,我建议你存储的类的实例中List,HashTable或其他类型的旨在容纳多个元素的数据结构.您使用的实际结构取决于您的要求.