Процес претварања једног типа података у други је познат као Типецастинг и Упцастинг и Довнцастинг је тип типа објекта. У Јави, објекат такође може да се одреди као типови података. Родитељ и дете објекти су две врсте објеката. Дакле, за објекат су могућа два типа превођења типа, тј. Родитељ детету и Дете родитељу или може рећи Упцастинг и Довнцастинг .
Ин Јава , објекат се такође може одредити као типови података. Родитељ и Дечји објекти су две врсте објеката. Дакле, за објекат су могућа два типа превођења типа, тј. Родитељ детету и Дете родитељу или може рећи Упцастинг и Довнцастинг .
Типецастинг се користи да би се осигурало да ли су променљиве правилно обрађене од стране функције или не. Ин Упцастинг и Довнцастинг , куцамо подређени објекат родитељском објекту и родитељски објекат подређеном објекту истовремено. Можемо извршити упцастинг имплицитно или експлицитно, али довнцастинг не може бити имплицитно могуће.
Хајде да заронимо дубоко у обе ове врсте преливања објеката:
јава беан
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. | Родитељ п = нови родитељ() | Родитељ п = ново дете() Дете ц = (Дете)п; |