logo

Упцастинг и Довнцастинг у Јави

Процес претварања једног типа података у други је познат као Типецастинг и Упцастинг и Довнцастинг је тип типа објекта. У Јави, објекат такође може да се одреди као типови података. Родитељ и дете објекти су две врсте објеката. Дакле, за објекат су могућа два типа превођења типа, тј. Родитељ детету и Дете родитељу или може рећи Упцастинг и Довнцастинг .

Ин Јава , објекат се такође може одредити као типови података. Родитељ и Дечји објекти су две врсте објеката. Дакле, за објекат су могућа два типа превођења типа, тј. Родитељ детету и Дете родитељу или може рећи Упцастинг и Довнцастинг .

Типецастинг се користи да би се осигурало да ли су променљиве правилно обрађене од стране функције или не. Ин Упцастинг и Довнцастинг , куцамо подређени објекат родитељском објекту и родитељски објекат подређеном објекту истовремено. Можемо извршити упцастинг имплицитно или експлицитно, али довнцастинг не може бити имплицитно могуће.

Упцастинг и Довнцастинг у Јави

Хајде да заронимо дубоко у обе ове врсте преливања објеката:

јава беан

1) Упцастинг

Упцастинг је врста типова објеката у којима а дете објекат је типкано на а објекат родитељске класе . Користећи Упцастинг, можемо лако приступити варијаблама и методама родитељске класе подређеној класи. Овде не приступамо свим варијаблама и методу. Приступамо само неким специфицираним варијаблама и методама подређене класе. Упцастинг је такође познат као Генерализација и Ширење .

УпцастингЕкампле.јава

 class Parent{ void PrintData() { System.out.println('method of parent class'); } } class Child extends Parent { void PrintData() { System.out.println('method of child class'); } } class UpcastingExample{ public static void main(String args[]) { Parent obj1 = (Parent) new Child(); Parent obj2 = (Parent) new Child(); obj1.PrintData(); obj2.PrintData(); } } 

Излаз:

Упцастинг и Довнцастинг у Јави

2) Спуштање

Упцастинг је још једна врста пресликавања типа објеката. У Упцастинг-у, додељујемо референтни објекат родитељске класе подређеној класи. У Јави, не можемо доделити референтни објекат родитељске класе подређеној класи, али ако извршимо довнцастинг, нећемо добити никакву грешку у времену компајлирања. Међутим, када га покренемо, он баца 'ЦлассЦастЕкцептион' . Сада је поента ако довнцастинг није могуће у Јави, зашто га онда дозвољава компајлер? У Јави, неки сценарији нам омогућавају да извршимо довнцастинг. Овде се на објекат поткласе упућује родитељска класа.

абс ц код

Испод је пример снижавања у којем су објашњени и важећи и неважећи сценарији:

ДовнцастингЕкампле.јава

штампање изјаве у јава
 //Parent class class Parent { String name; // A method which prints the data of the parent class void showMessage() { System.out.println('Parent method is called'); } } // Child class class Child extends Parent { int age; // Performing overriding @Override void showMessage() { System.out.println('Child method is called'); } } public class Downcasting{ public static void main(String[] args) { Parent p = new Child(); p.name = 'Shubham'; // Performing Downcasting Implicitly //Child c = new Parent(); // it gives compile-time error // Performing Downcasting Explicitly Child c = (Child)p; c.age = 18; System.out.println(c.name); System.out.println(c.age); c.showMessage(); } } 

Излаз:

Упцастинг и Довнцастинг у Јави

Зашто нам треба Упцастинг и Довнцастинг?

У Јави ретко користимо Упцастинг . Користимо га када треба да развијемо код који се бави само родитељском класом. Довнцастинг се користи када треба да развијемо код који приступа понашању дечје класе.

Упцастинг и Довнцастинг у Јави

Разлика између упцастинга и довнцастинга

Ово су следеће разлике између упцастинга и довнцастинга:

Да не Упцастинг Довнцастинг
1. Подређени објекат се приписује родитељском објекту. Референца објекта родитељске класе се прослеђује подређеној класи.
2. Упцастинг можемо извршити имплицитно или експлицитно. Имплицитно снижавање није могуће.
3. У подређеној класи можемо приступити методама и варијаблама родитељске класе. Може се приступити методама и варијаблама обе класе (родитељске и подређене).
4. Можемо приступити неким специфицираним методама подређене класе. Свим методама и варијаблама обе класе може се приступити извођењем довнцастинга.
5. Родитељ п = нови родитељ() Родитељ п = ново дете()
Дете ц = (Дете)п;