logo

Upcasting e Downcasting em Java

Um processo de conversão de um tipo de dados para outro é conhecido como Tipografia e Upcasting e Downcasting é o tipo de conversão de tipo de objeto. Em Java, o objeto também pode ser convertido em tipo como os tipos de dados. Pai e Criança objetos são dois tipos de objetos. Portanto, existem dois tipos de conversão de tipo possíveis para um objeto, ou seja, Pai para filho e Filho para pai ou posso dizer Upcasting e Downcasting .

Em Java , o objeto também pode ser convertido em tipo como os tipos de dados. Pai e Objetos filhos são dois tipos de objetos. Portanto, existem dois tipos de conversão de tipo possíveis para um objeto, ou seja, Pai para filho e Filho para pai ou posso dizer Upcasting e Downcasting .

Tipografia é usado para garantir se as variáveis ​​​​são processadas corretamente por uma função ou não. Em Upcasting e Downcasting , nós tipificamos um objeto filho para um objeto pai e um objeto pai para um objeto filho simultaneamente. Podemos realizar o Upcasting implícita ou explicitamente, mas o downcasting não pode ser implicitamente possível.

Upcasting e Downcasting em Java

Vamos nos aprofundar nesses dois tipos de fundição de objetos:

jquery com um clique

1) Upcasting

Upcasting é um tipo de conversão de tipo de objeto em que um objeto filho é tipificado para um objeto de classe pai . Usando o Upcasting, podemos acessar facilmente as variáveis ​​​​e métodos da classe pai para a classe filha. Aqui não acessamos todas as variáveis ​​e o método. Acessamos apenas algumas variáveis ​​e métodos especificados da classe filha. Upcasting também é conhecido como Generalização e Alargamento .

UpcastingExample.java

imprimir array em 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(); } } 

Saída:

Upcasting e Downcasting em Java

2) Downcasting

Upcasting é outro tipo de conversão de tipo de objeto. No Upcasting, atribuímos um objeto de referência de classe pai à classe filha. Em Java, não podemos atribuir um objeto de referência de classe pai à classe filha, mas se realizarmos downcasting, não obteremos nenhum erro em tempo de compilação. No entanto, quando o executamos, ele lança o 'ClassCastException' . Agora a questão é: se o downcasting não é possível em Java, então por que ele é permitido pelo compilador? Em Java, alguns cenários nos permitem realizar downcasting. Aqui, o objeto da subclasse é referido pela classe pai.

Abaixo está um exemplo de downcasting em que os cenários válidos e inválidos são explicados:

DowncastingExample.java

 //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(); } } 

Saída:

Upcasting e Downcasting em Java

Por que precisamos de Upcasting e Downcasting?

Em Java, raramente usamos Upcasting . Usamo-lo quando precisamos desenvolver um código que lide apenas com a classe pai. Downcasting é usado quando precisamos desenvolver um código que acesse comportamentos da classe filha.

int para string em java
Upcasting e Downcasting em Java

Diferença entre Upcasting e Downcasting

Estas são as seguintes diferenças entre Upcasting e Downcasting:

Sim não Upcasting Downcasting
1. Um objeto filho é convertido em um objeto pai. A referência do objeto da classe pai é passada para a classe filha.
2. Podemos realizar Upcasting implícita ou explicitamente. O downcasting implícito não é possível.
3. Na classe filha, podemos acessar os métodos e variáveis ​​da classe pai. Os métodos e variáveis ​​​​de ambas as classes (pai e filho) podem ser acessados.
4. Podemos acessar alguns métodos especificados da classe filha. Todos os métodos e variáveis ​​de ambas as classes podem ser acessados ​​realizando downcasting.
5. Pai p = novo Pai() Pai p = novo Filho()
Criança c = (Criança)p;