Olá, Luiz! Tudo ok contigo?
Na linha public boolean equals(C c)
, o método equals
recebe como parâmetro um objeto da classe C
. Ou seja, ele espera que você passe um objeto do tipo C
para ser comparado com o objeto atual.
Na linha return c.x==x;
, o método compara o valor da variável x
do objeto passado como parâmetro (c.x
) com o valor da variável x
do objeto atual (x
). Se os valores forem iguais, o método retorna true
, indicando que os objetos são considerados iguais. Caso contrário, retorna false
.
Na linha C b = new B();
, a classe B
é uma subclasse da classe C
. Portanto, é possível criar um objeto do tipo B
e atribuí-lo a uma variável do tipo C
. Nesse caso, o objeto b
é do tipo B
, mas está sendo referenciado por uma variável do tipo C
. Isso é possível porque B
herda todos os membros de C
.
Espero ter ajudado e bons estudos!