Duvida sobre castings e herança

1 resposta
Filipe_Carvalho2
public abstract class Pessoa {
	
	private String nome;
	private String cpf;
	
	// get and set
}
public class Aluno extends Pessoa {
	
	private String matricula;
	
	// get and set
}
public class Main {
	
	public static void main(String[] args) {
		Pessoa pessoaAluno = new Aluno();
	}
}

Galera, eu tenho uma duvida, ao converter a subclasse “Aluno” para o tipo da classe Pai “Pessoa”, por que a variavel " pessoaAluno" Não tem acesso aos metodos e atributos de Aluno ? Não ficou muito claro, vai ser instanciada a classe Pessoa de forma indireta, ou seja a classe filha está instanciando a pai ?

1 Resposta

wldomiciano

Se vc diz que pessoaAluno é do tipo Pessoa o compilador vai tratar como Pessoa, ele não vai tentar adivinhar que a instancia é do tipo Aluno.

A situação que vc descreveu é util quando a subclasse está sobrescrevendo algum método da super classe.

Criado 7 de abril de 2021
Ultima resposta 7 de abr. de 2021
Respostas 1
Participantes 2