Как глубоко скопировать массив объектов из нескольких классов - PullRequest
0 голосов
/ 11 февраля 2020

Как следует из названия, как мне это сделать? Я искал везде в inte rnet, может быть, я не искал правильное слово или что-то. Но, пожалуйста, помогите мне.

Object[] FlyingObject = new FlyingObject[3];
FlyingObject[0] = new Helicopter();
FlyingObject[1] = new Airplane();
FlyingObject[2] = new Drone();

Public static Object[] CopyFlyingObject(Object[] C){
    Object FlyingObjectCopy = new Object(C.length);
    // ...I got no idea how to continue from here
}

Использование clone() недопустимо, и вы также не можете найти имя класса. У меня есть конструктор копирования в других моих классах, но я не знаю, как его вызвать, когда мы используем объект, особенно с массивом объектов с неизвестными классами по всему массиву.

Редактировать: Код моего подкласса

'''java
    int speed;
    double price;
    Helicopter(){
         speed = 0;
         price = 0.0;
    }
    Helicopter(Helicopter c){
         speed = c.speed;
         price = c.price; 
    }

    public Airplane extends Helicopter{
      String brand;   
      Airplane(){
         super();
         brand = "";
       }
      Airplane(Airplane c){
         super(C);
         brand = c.brand;
       }
      public String getBrand(){
         return brand;
       }
    }
    public Drone{
    //practically the same for here
    }
'''
...