Proces konwersji jednego typu danych na inny nazywa się Typowanie I Podnoszące na duchu I Przygnębiający to typ rzutowania obiektów. W Javie obiekt można również rzutować na typ, podobnie jak typy danych. Rodzic I Dziecko obiekty to dwa typy obiektów. Zatem w przypadku obiektu możliwe są dwa typy rzutowania tekstu, tj. Rodzic do Dziecka I Dziecko do rodzica lub może powiedzieć Podnoszące na duchu I Przygnębiający .
W Jawa , obiekt można również rzutować na typ, podobnie jak typy danych. Rodzic I Obiekty podrzędne to dwa rodzaje obiektów. Zatem w przypadku obiektu możliwe są dwa typy rzutowania tekstu, tj. Rodzic do Dziecka I Dziecko do rodzica lub może powiedzieć Podnoszące na duchu I Przygnębiający .
Typowanie służy do sprawdzenia, czy zmienne są poprawnie przetwarzane przez funkcję, czy nie. W Podnoszące na duchu I Przygnębiający , typujemy obiektu podrzędnego do obiektu nadrzędnego I obiektu nadrzędnego na obiekt podrzędny jednocześnie. Możemy wykonać rzutowanie w górę w sposób ukryty lub jawny, ale rzutowanie w dół nie może być możliwe w sposób dorozumiany.
Zagłębmy się w oba rodzaje rzutowania obiektów:
selektor dokumentu.zapytania
1) Podnoszący na duchu
Podnoszące na duchu to rodzaj rzutowania obiektów, w którym a obiekt podrzędny jest typowany na a obiekt klasy nadrzędnej . Korzystając z upcastingu, możemy łatwo uzyskać dostęp do zmiennych i metod klasy nadrzędnej do klasy podrzędnej. Tutaj nie mamy dostępu do wszystkich zmiennych i metody. Mamy dostęp tylko do niektórych określonych zmiennych i metod klasy potomnej. Podnoszące na duchu jest również znany jako Uogólnienie I Poszerzanie .
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(); } }
Wyjście:
2) Przygnębienie
Podnoszące na duchu to inny rodzaj rzutowania obiektów. W Upcastingu przypisujemy obiekt referencyjny klasy nadrzędnej do klasy podrzędnej. W Javie nie możemy przypisać obiektu referencyjnego klasy nadrzędnej do klasy podrzędnej, ale jeśli wykonamy rzutowanie w dół, nie otrzymamy żadnego błędu w czasie kompilacji. Jednak gdy go uruchomimy, wyrzuca plik „Wyjątek ClassCast” . Chodzi o to, że jeśli w Javie downcasting nie jest możliwy, to dlaczego kompilator na to zezwala? W Javie niektóre scenariusze pozwalają nam na wykonanie downcastingu. Tutaj obiekt podklasy jest odwoływany przez klasę nadrzędną.
sqrt matematyka Java
Poniżej znajduje się przykład downcastingu, w którym wyjaśniono zarówno prawidłowy, jak i nieprawidłowy scenariusz:
DowncastingExample.java
wiek Hrithika Roshana
//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(); } }
Wyjście:
Dlaczego potrzebujemy wzlotów i upadków?
W Javie rzadko używamy Podnoszące na duchu . Używamy go, gdy musimy opracować kod, który dotyczy tylko klasy nadrzędnej. Przygnębiający jest używany, gdy musimy opracować kod uzyskujący dostęp do zachowań klasy podrzędnej.
Różnica między wznoszeniem a obniżaniem
Oto następujące różnice między przesyłaniem w górę i w dół:
Tak nie | Podnoszące na duchu | Przygnębiający |
---|---|---|
1. | Obiekt podrzędny jest rzutowany na obiekt nadrzędny. | Odwołanie do obiektu klasy nadrzędnej jest przekazywane do klasy podrzędnej. |
2. | Upcasting możemy wykonać w sposób ukryty lub jawny. | W sposób dorozumiany Downcasting nie jest możliwy. |
3. | W klasie potomnej mamy dostęp do metod i zmiennych klasy nadrzędnej. | Można uzyskać dostęp do metod i zmiennych obu klas (rodzica i dziecka). |
4. | Możemy uzyskać dostęp do niektórych określonych metod klasy potomnej. | Dostęp do wszystkich metod i zmiennych obu klas można uzyskać, wykonując rzutowanie w dół. |
5. | Rodzic p = nowy Rodzic() | Rodzic p = nowe Dziecko() Dziecko c = (Dziecko) p; |