Добавление объекта подкласса в массив из суперкласса с наследованием в Java - PullRequest
0 голосов
/ 09 апреля 2020

Итак, у меня есть два класса - Flight и NonTransferFlight, а Flight - суперкласс NonTransferFlight. У меня есть массив FlightArray, который я создал как:

Flight flightArray [] = new Flight [10];

Проблема в том, что когда я хочу добавить объект NonTransferFlight в этот массив, он не не позволяйте мне это делать. как я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 09 апреля 2020

Вы можете добавить его так:

Flight flightArray[] = new Flight[10];
flightArray[0] = new NonTransferFlight();

или

Flight flightArray[] = new Flight[10];
NonTransferFlight ntf = new NonTransferFlight();
// Can set some props for ntf instance and then,
flightArray[0] = ntf;
0 голосов
/ 09 апреля 2020

Проблема в том, что когда я хочу добавить объект NonTransferFlight в этот массив, он не позволяет мне это сделать.

Я не совсем уверен, почему вы говорите, что потому что, теоретически, вы можете сделать это.

Если у вас есть следующая структура класса (как вы описали):

class NonTransferFlight extends Flight { }

class Flight { }

Вы можете легко добавить NonTransferFlight объекты в ваш массив , как показано ниже:

Flight[] flightArray = new Flight[10];

flightArray[0] = new NonTransferFlight();
flightArray[1] = new Flight();
// ...

Не связано, но как общее правило, используйте объявление массива в стиле Java: Flight[] flightArray, в отличие от того, что имеется в код, C объявление массива в стиле: Flight flightArray[].

...