Dlaczego nawiasy są używane wokół nazwy klasy w Javie?

Natknąłem się na jakiś kod i nie mogę zrozumieć jego niektórych aspektów, chociaż przeprowadziłem obszerne wyszukiwanie!

Moje pytanie brzmi: dlaczego klasy są czasami deklarowane w nawiasach, jak w poniższym kodzie?

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();
    }
}

gdzie w szczególności skupiam się na tej linii kodu:

            Animal myAnimal = (Animal)myCat;

Uważam, że ma to coś wspólnego z faktem, że jedna klasa rozszerza inną klasę, ale nie jestem pewien, co oznacza klasa zdefiniowana w nawiasach.

Każda pomoc na ten temat jest mile widziana. Z góry dziękuję.

questionAnswers(4)

yourAnswerToTheQuestion