Desafio3: Modifique o Exercício 2 para incluir uma verificação usando instanceof para garantir que o objeto seja do tipo correto antes de fazer o casting.
public class Animal {
private String nome;
public Animal(String nome) {
this.nome = nome;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
}
public class Cachorro extends Animal {
private String raca;
public Cachorro (String nome, String raca) {
super(nome);
this.raca = raca;
}
public void latir() {
System.out.println("Latindo!");
}
public String getRaca() {
return raca;
}
public void setRaca(String raca) {
this.raca = raca;
}
}
public class Principal {
public static void main(String[] args) {
Cachorro cachorro = new Cachorro("Montanha", "Pinscher");
System.out.println("Nome: " + cachorro.getNome() + " - " +
"Raça: " + "- " + cachorro.getRaca());
Animal animal = (Animal) cachorro;
Animal novoAnimal = new Animal("");
novoAnimal.setNome("Felix The Cat");
if (animal instanceof Cachorro) {
System.out.println(cachorro.getNome());
((Cachorro) animal).latir();
} else {
System.out.println("Não sou um cachorro");
}
if (novoAnimal instanceof Cachorro) {
System.out.println(((Cachorro) animal).getNome());
((Cachorro) animal).latir();
} else {
System.out.println(novoAnimal.getNome() + " - " + "Não sou um cachorro");
}
}
}