Não entendi o exemplo do instrutor que mostra nos exercicios 2 e 3, os nomes das classes Animal e Cachorro entre parenteses ao instanciar. Peço uma orientação detalhada se possivel pois essa ação não foi feita no vídeo. Agradeço.
Não entendi o exemplo do instrutor que mostra nos exercicios 2 e 3, os nomes das classes Animal e Cachorro entre parenteses ao instanciar. Peço uma orientação detalhada se possivel pois essa ação não foi feita no vídeo. Agradeço.
Olá Ana! Tudo bem?
Vou te ajudar a entender o exemplo dos exercícios 2 e 3 que envolvem as classes Animal e Cachorro.
Exercício 2: Casting de Objetos
No exemplo do exercício 2, temos o seguinte código:
class Animal {
// Propriedades e métodos
}
class Cachorro extends Animal {
// Propriedades e métodos
}
public class Main {
public static void main(String[] args) {
Cachorro cachorro = new Cachorro();
Animal animal = (Animal) cachorro;
}
}
Aqui, a classe Cachorro herda da classe Animal. Quando você cria um objeto Cachorro, ele também é um Animal por herança. O que está acontecendo é um casting de objeto, que é quando você converte um objeto de uma subclasse (Cachorro) para uma superclasse (Animal).
No código Animal animal = (Animal) cachorro;, você está dizendo ao compilador que o objeto cachorro deve ser tratado como um objeto do tipo Animal. Isso é útil quando você quer tratar um objeto de uma subclasse como se fosse da superclasse.
Exercício 3: Verificação com instanceof
No exemplo do exercício 3, o código é modificado para incluir uma verificação com instanceof:
class Animal {
// propriedades e métodos comuns
}
class Cachorro extends Animal {
// propriedades e métodos do cachorro
}
public class Main {
public static void main(String[] args) {
Animal animal = new Cachorro();
if (animal instanceof Cachorro) {
Cachorro cachorro = (Cachorro) animal;
// Agora você pode usar o objeto 'cachorro' como um Cachorro
} else {
System.out.println("O objeto não é um Cachorro.");
}
}
}
Aqui, a verificação if (animal instanceof Cachorro) garante que o objeto animal é realmente uma instância de Cachorro antes de fazer o casting. Isso evita erros em tempo de execução ao tentar converter um objeto para um tipo incompatível.
Fazendo um resumo geral sobre o que foi aplicado nos dois exercícios
Animal animal = (Animal) cachorro;instanceof: Verifica se um objeto é uma instância de um tipo específico antes de fazer o casting. Exemplo: if (animal instanceof Cachorro)Espero ter ajudado e caso ainda tenho dúvidas acerca dos códigos disponibilizados, estarei à disposição para ajudá-la.
Bons estudos!
Oi Armano,
Certo amigo. Com a explicação detalhada deu pra entender melhor. É que, como no código do vídeo a instrutora não colocou assim fica um pouco complicado entender apenas olhando.E também é uma maneira mais concisa de se referenciar ao casting de um objeto. Fica mais enxuto. Muito obrigada de novo. Gratidão!