Boa irmão Sua pergunta ficou um pouco confusa, mas vou tentar explicar o que entendi dela, se for algo diferente por favor me informe que tento melhorar a resposta;
Uma classe Filha pode apontar para um classe Pai
Ex
Mamifero humano = new Humano();
Mamifero cachorro = new Cachorro();
No exemplo a cima ambas as varia veis a serem chamadas dessa forma só podem usar os métodos que estão escritos na Classe Mamífero.
Ex
humano.Mamar();
cachorro.Respirar();
Porem caso ela seja devolvida novamente para uma classe menos Genérica poderá voltar a usar os métodos da Classe menos Genérica
Ex
Humano humano2 = humano as Humano;
Cachorro cachorro2 = cachorro as Cachorro;
humano2.Falar();
cachorro2.Latir();
Nessa caso será necessário fazer o cast explicito garantindo que você sabe que aquela variável tem uma classe menos genérica que poderá ser Usada, caso de fato a variável não corresponda a aquela classe Menos genérica você vai ter uma Exception ao tentar rodar algum item dela.