Polimorfismo Java criando um objeto de subclasse usando sua variável superclasse

Então, eu sou um estudante e estou aprendendo Java. Há um conceito que estou tendo dificuldade em entender e espero que alguém possa esclarecer isso para mim. Minha pergunta é sobre o polimorfismo. Vamos dizer, por exemplo, eu tenho o seguinte código.

Animal a = new Lizard("Lizzy", 6);  //Lizard extends Animal

Pelo que entendi, já que o tipo de variável é Animal, a terá todas as características de um Animal. Mas como o objeto criado é um Lizard, todos os métodos sobrescritos na classe Lizard serão usados ​​no lugar daqueles da classe Animal. Está correto>

Além disso, qual construtor de classes será usado durante a criação de um?

Obrigado por qualquer ajuda. Eu olhei bastante

questionAnswers(3)

yourAnswerToTheQuestion