¿Por qué se usan paréntesis alrededor de un nombre de clase en Java?

Me encontré con un código y no puedo entender un cierto aspecto, ¡aunque he realizado una búsqueda exhaustiva!

Mi pregunta es: ¿por qué las clases a veces se declaran entre paréntesis como en el siguiente código?

public class Animal {

    public static void hide() {
        System.out.println("The hide method in Animal.");
    }

    public void override() {
        System.out.println("The override method in Animal.");
    }
}

public class Cat extends Animal {

    public static void hide() {
        System.out.println("The hide method in Cat.");
    }

    public void override() {
        System.out.println("The override method in Cat.");
    }

    public static void main(String[] args) {
        Cat myCat = new Cat();
        Animal myAnimal = (Animal)myCat;
        myAnimal.hide();
        myAnimal.override();
    }
}

donde mi enfoque es en esta línea de código en particular:

            Animal myAnimal = (Animal)myCat;

Creo que tiene algo que ver con el hecho de que una clase se extiende a otra pero no estoy seguro de lo que significa la clase definida entre paréntesis.

Cualquier ayuda en esto es apreciada. Gracias de antemano.

Respuestas a la pregunta(4)

Su respuesta a la pregunta