Duvida sobre castings e herança

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 ?

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.