Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

aula 11. exercício 4

class B extends C{}
    class C {
        int x;
        public boolean equals(C c) {    /*  esse método recebe como parametro um objeto da classe C, no caso chamado c ? */
            return c.x==x; /* o que exatamente essa linha faz? compara um valor local com a variavel da classe C? */ 
        }
    }
    class A {
        public static void main(String[] args) {
            C a = new C();
            C b = new B();  /* o que exatamente essa linha faz? isso: " C b = new B();" é igual a isso: "C b = new C();"*/ 
            a.x = 1;
            b.x = 1;
            System.out.println(a==b);
            System.out.println(a.equals(b));
        }
    }
1 resposta
solução!

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!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software