Vieno tipo duomenų konvertavimo į kitą procesas yra žinomas kaip Tipų siuntimas ir Naujinimas ir Nusileidimas yra objekto tipo perdavimo tipas. „Java“ sistemoje objektas taip pat gali būti perduodamas kaip duomenų tipai. Tėvas ir Vaikas objektai yra dviejų tipų objektai. Taigi, objektui galimi du tipai, t. y. Tėvas vaikui ir Vaikas Tėvams arba gali pasakyti Naujinimas ir Nusileidimas .
Į Java , objektas taip pat gali būti įvestas kaip duomenų tipai. Tėvas ir Vaikų objektai yra dviejų tipų objektai. Taigi, objektui galimi du tipai, t. y. Tėvas vaikui ir Vaikas Tėvams arba gali pasakyti Naujinimas ir Nusileidimas .
Tipų siuntimas naudojamas siekiant užtikrinti, ar funkcija tinkamai apdoroja kintamuosius, ar ne. Į Naujinimas ir Nusileidimas , mes rašome vaikas prieštarauja pirminiam objektui ir tėvas prieštarauja antriniam objektui tuo pačiu metu. Galime netiesiogiai arba aiškiai atlikti „Upcasting“, bet netiesiogiai nuleisti negalima.
Pasinerkime į abu šiuos objektų liejimo tipus:
miegoti js
1) Pakeitimas
Naujinimas yra objektų tipo perdavimo tipas, kuriame a vaiko objektas yra spausdinamas į a pirminės klasės objektas . Naudodami Upcasting, galime lengvai pasiekti pirminės klasės kintamuosius ir metodus antrinei klasei. Čia mes nepasiekiame visų kintamųjų ir metodo. Prieiname tik kai kuriuos nurodytus antrinės klasės kintamuosius ir metodus. Naujinimas taip pat žinomas kaip Apibendrinimas ir Plečiantis .
UpcastingExample.java
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(); } }
Išvestis:
2) Sumažėjimas
Naujinimas yra kitas objektų tipo perdavimo tipas. Naudojant Upcasting, antrinei klasei priskiriame pagrindinės klasės nuorodos objektą. „Java“ negalime priskirti pirminės klasės nuorodos objekto antrinei klasei, bet jei atliksime sumažinimą, negausime kompiliavimo laiko klaidos. Tačiau kai mes jį paleidžiame, jis išmeta „ClassCastException“ . Dabar esmė ta, kad jei „Java“ neįmanoma sumažinti nuleidimo, kodėl tai leidžia kompiliatorius? „Java“ programoje kai kurie scenarijai leidžia atlikti sumažinimą. Čia poklasio objektą nurodo pagrindinė klasė.
gamyklos dizaino modelis
Toliau pateikiamas sumažinimo pavyzdys, kuriame paaiškinami galiojantys ir negaliojantys scenarijai:
DowncastingExample.java
java eilutė
//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(); } }
Išvestis:
Kodėl mums reikia aukštyn ir žemyn?
Java mes retai naudojame Naujinimas . Mes naudojame jį, kai turime sukurti kodą, kuris būtų susijęs tik su pirmine klase. Nusileidimas naudojamas, kai mums reikia sukurti kodą, kuris pasiektų vaikų klasės elgesį.
Skirtumas tarp padidinimo ir sumažinimo
Tai yra šie skirtumai tarp padidinimo ir sumažinimo:
Taip ne | Naujinimas | Nusileidimas |
---|---|---|
1. | Antrinis objektas perduodamas pirminiam objektui. | Pirminės klasės objekto nuoroda perduodama antrinei klasei. |
2. | Galime atlikti „Upcasting“ netiesiogiai arba aiškiai. | Netiesioginis sumažinimas neįmanomas. |
3. | Vaikų klasėje galime pasiekti pirminės klasės metodus ir kintamuosius. | Galima pasiekti abiejų klasių (tėvo ir vaiko) metodus ir kintamuosius. |
4. | Galime pasiekti kai kuriuos nurodytus vaikų klasės metodus. | Visus abiejų klasių metodus ir kintamuosius galima pasiekti atliekant sumažinimą. |
5. | Tėvų p = naujas Tėvas () | Tėvo p = naujas vaikas () Vaikas c = (Vaikas)p; |