У меня есть отношение родительского и классового отношения к наследству. Класс child имеет параметризованный конструктор. При запуске родительского класса в дочерний класс будет вызываться дочерний конструктор?вызов конструктора java downcasting?
0
A
ответ
1
No. Кастинг не зависит от конструкции. Конструктор класса X возвращает экземпляр класса X. Если у вас есть
class X { ... }
class Y extends X { ... }
X my_x = new X();
Y my_y = (Y) my_x; <=== ClassCastExceptoin
Это вызовет исключение. Следующие действия будут работать:
class X { ... }
class Y extends X { ... }
X my_x = new Y(); // Note subclass constructor call
Y my_y = (Y) my_x; // my_x really referred to a Y instance, so this is OK
+0
Итак, если есть некоторые параметры, которые назначаются через конструктор, не будут назначены с помощью downcasting? –
в том месте, где вы его сбрасываете, экземпляр объекта должен уже существовать и дочерний конструктор уже вызывается. Поэтому я не понимаю этот вопрос. – SomeJavaGuy
Не знаю. Если я понимаю вопрос, но, я думаю, вы спрашиваете о том, как применить элемент к параметризуемому типу. да, вы можете: ArrayList arr = новый ArrayList <>(); Объект obj = (объект) arr; ArrayList arr2 = (ArrayList ) arr; –
Я имею в виду, что существует какая-то логика подкласса-конструктора, который должен назначать данные одному из своих параметров. потому что я не вызываю конструктор подкласса и просто понижаю его ... Будет ли логика, присутствующая в боковой дочерней конструкции класса, выполнить или нет? –