Що таке upcasting і downcasting в Java?
Upcasting стосується приведення дочірнього об’єкта до батьківського. Зниження забезпечує приведення батьківського об’єкта до дочірнього об’єкта. Допускається як неявне, так і явне перетворення. Неявне приведення до низу заборонено в Java. 4 травня 2023 р
Перетворення передбачає перетворення об’єкта підкласу на посилання суперкласу, сприяючи гнучкості коду та підтримці поліморфізму. З іншого боку, низведення дозволяє відновлювати специфічні для підкласу функції шляхом перетворення посилання на суперклас назад на тип підкласу.
Підвищення — це приведення до супертипу, тоді як приведення до підтипу. Підвищення класифікації завжди дозволено, але низхідне приведення передбачає перевірку типу та може викликати ClassCastException. У вашому випадку перехід від Собаки до Тварини є піднятим, тому що Собака — це Тварина.
Перетворення: Для підвищення класу ми призначаємо посилання/примірник дочірнього класу до посилання батьківського класу . Machine machine1= ноутбук;//Тут ми призначили посилання на дочірній клас посиланню на батьківський клас. //Це схоже на Machine machine1= new Laptop().
У програмуванні, заснованому на класах, є низхідне приведення або уточнення типу акт приведення посилання на базовий або батьківський клас до більш обмеженого посилання на похідний клас. Це допустимо лише в тому випадку, якщо об’єкт уже є екземпляром похідного класу, тому це перетворення за своєю суттю є помилковим.
Зниження може бути виконано лише безпосередньо, але кастинг можна виконувати як явно, так і неявно. Люди можуть отримати доступ до змінних і методів батьківського класу в дочірньому класі у випадку підвищення класу, але не навпаки.