-
Gabarito A, mas não concordo:
até onde eu sei sobrecarga necessita de assinaturas diferentes.
-
Concordo com o Souza Silva. Como o método está distribuído pelas diversas classes não houve sobrecarga (overload), apenas houve uma forma de polimorfismo, mas "descentralizada", ou eu diria: reúso.
-
Há uma pegadinha no enunciado. o comando final do enunciado diz "Sobre a aplicação desse CONCEITO, é possível afirmar que"
O CONCEITO que ele se refere anteriormente é o POLIMORFISMO (e SÓ! genérico mesmo, sem dizer se é de sobreposição ou sobrecarga). Ele NÃO tá se referindo a TÉCNICA de polimorfismo de sobrecarga de métodos.
Pegadinha de enunciado.
-
realmente a questão se refere ao conceito de polimorfismo e exemplificou no enunciado um tipo deles, mas não necessariamente se referindo a esse tipo, neste caso a letra A fica correta mesmo.
-
Pessoal, o que identificaram como erro da D?
Sobre a A, marquei-a como errada, pois no polimorismo dinâmico (sobrescrita) o método que será executado é identificado em tempo de execução, e não pelo compilador, como afirma o item A.
-
Yuri, acredito que não tenha um erro na afirmação, apenas não teria relação com o conceito de polimorfismo. Também fiquei em dúvida em relação ao compilador, já que em tempo de compilação é sobrecarga.
Obs: Marquei a D tbm pq li rápido e achei que a questão perguntava sobre a sobrecarga, logo a letra A estaria incorreta.
-
Pra mim a letra "A" está incorreta.
Comento a Letra A:
Um mesmo método pode estar em classes diferentes, com a mesma assinatura(característica da sobrescrita), sem que isso prejudique a sua identificação pelo compilador(Na sobrescrita o compilador não consegue identificá-la, por isso esse tipo de polimorfismo é chamado de late binding, pois é identificado em tempo de execução). Não consegui entender o porquê a questão foi considerada correta.
-
Gente, sinceramente... esse questão deveria ter sido anulada!
-
Pegadinha ridícula. A questão quer saber sobre polimorfismo mas cita sobrecarga apenas pra confundir o candidato.
@Yuri Carmo
O erro da D é que ela define herança e não polimorfismo.
-
Questão mto estranha, eu tbm havia marcado a letra "D", mas depois fui ler os comentários e realmente esta alternativa trata de herança. Alguém sabe se ela foi anulada ?
-
⦁ um mesmo método pode estar em classes diferentes, com a mesma assinatura, sem que isso prejudique a sua identificação pelo compilador.
Correto. Se 2 classes diferentes tiverem métodos com a mesma assinatura não há problema nenhum. O escopo dos métodos é a classe e o compilador consegue diferenciar.
⦁ a identificação da assinatura do método corresponde ao seu nome.
Errado. A assinatura de um método é identificada por 3 componentes: retorno + nome + lista de parâmetros e não só pelo nome.
⦁ uma classe derivada da classe-mãe tem vários métodos com a mesma assinatura, e o compilador realiza o primeiro deles.
Errado. Neste de a classe derivada ter vários métodos com a mesma assinatura ocorre erro de compilação.
⦁ a classe derivada da classe-mãe herda os métodos da sua classe-mãe na forma como são implementados.
Errado. Existe a possibilidade de a classe derivada sobrescrever os métodos da classe-mãe. Neste caso, muda a implementação dos métodos herdados.
⦁ cada método tem um nome único na classe derivada da classe-mãe a ser identificado pelo compilador.
Errado. Pode ocorrer sobrecarga de métodos. Neste caso, haverá mais de um método com o mesmo nome e o que os diferenciará será a lista de parâmetros diferente.
Resposta: A
-
em nenhum momento a alternativa A diz respeito a classes que estão na mesma cadeia de herança. Diz que classes diferentes podem possuir métodos com a mesma assinatura. Eu entendo que isso está de acordo com o conceito de polimorfismo, uma vez que classes diferentes podem implementar uma mesma interface (contrato), com implementações diversas e não serem classes que estendem uma da outra.
-
a) Correto. Um método de uma classe não tem nada a ver com o método de uma outra, o compilador vai conseguir identificar sem problemas. Caso possua uma relação de pai-filha, será feita uma ligação dinâmica em tempo de execução que encontrará o método correto mesmo se tiverem a mesma assinatura
b) Identificação do método é sua assinatura (nome + lista de parâmetros)
c) Em regra, uma classe não pode ter vários métodos com a mesma assinatura. Se tentar escrever um método com a mesma assinatura da classe mãe, ele sobrescreverá o método da classe mãe que ficará inacessível. Além disso, nesse caso, a escolha do método é feito pela JVM em tempo de execução, não pelo compilador
d) Em regra sim, mas posso sobrescrever para que a classe derivada tenha uma implementação diferente da classe mãe
e) Uma classe pode ter métodos com o mesmo nome, desde que as assinaturas sejam diferentes