Por que nós atribuímos uma referência pai ao objeto filho em Java?

Estou fazendo uma pergunta bem simples, mas estou um pouco confuso nisso.

Suponha que eu tenha uma aulaParent:

public class Parent {

    int name;
}

E ter outra aulaChild.java:

public class Child extends Parent{

    int salary;
}

E finalmente minha classe Main.java

public class Main {

    public static void main(String[] args)
    {
        Parent parent = new Child();
        parent.name= "abcd";
    }
}

Se eu fizer um objeto infantil como

Child child = new Child():

Entãochild objeto pode acessar tantoname and salary variáveis.

Minha pergunta é:

Parent parent = new Child();

dá o acesso de apenasname variável da classe pai. Então, qual é o uso exato dessa linha?

 Parent parent = new Child();

E também quando está usando polimorfismo dinâmico, então por que a variável da classe filha não é acessível depois de fazer isso?

Parent parent = new Child();

questionAnswers(8)

yourAnswerToTheQuestion