Duvida

6 respostas
velo

Um colega de trabalho lançou uma questão aqui:

Sendo que isso é no Java 5. Alguem sabe a resposta correta?

VELO

6 Respostas

tmoretto

Se o homem tem HUM melhor amigo que é um CÃO, a resposta seria a D. Mas não tem pegadinha ai não né ? :smiley:

s4nchez

Acredito que dependendo da finalidade deste código, mais de uma alternativa é válida.

“Apropriado” pra mim é aquilo que resolve o meu problema…

tmoretto

s4nchez:
Acredito que dependendo da finalidade deste código, mais de uma alternativa é válida.

“Apropriado” pra mim é aquilo que resolve o meu problema…

Na verdade você teria no máximo duas alternativas, as duas primeiras jã caem fora, um “Homem” não extende (ou herda, como queiram) nem implementa um “Cão”, e a E e a F não compilam.

Resta assim a C e a D.

A C não é algo claro. Bestfriend poderia ser uma interface ou uma classe abstrata, que o cão poderia implementar ou extender, vamos dizer assim. Mas não tem como saber se isto foi feito. E dessa forma um Elefante pode implementar ou herdar, e mesmo assim poderia ser o melhor amigo do “Homem”, não respondendo a pergunta corretamente.

Mas claro, Bestfriend poderia ser um classe concreta, mas ela é um representa um Cão? Fica sinistro, não da certo.

Sobra a D, que é a alternativa mais fiél, o “Homem” agrega HUM “Cão”. Já é o suficiente pra esclarecer o relacionamento.

T

Vamos lá. Acho que a rigor nenhuma das alternativas está correta.

A) class Man extends Dog {}
= Homens são cães

B) class Man implements Dog {}
= Homens são, entre outros atributos, cães (pergunte isso para qualquer mulher :stuck_out_tongue: )

C) class Man { private Bestfriend dog; }

= Homens têm um melhor amigo // não é porque o nome da variável é dog que deve haver um dog nessa variável

O correto seria algo como:

class Man { private Bestfriend friend = new Dog(); }

= Homens têm um melhor amigo que é um cão

Aqui suponho que “Dog implements Bestfriend”

D) class Man { private Dog bestfriend; }
= Homens têm um cão

E) class Man { private Dog <bestfriend>; }
= Sintaxe inválida

F) class Man { private BestFriend <dog>; }
= Sintaxe inválida

velo

Bom eu também escolhi a C.

class Man { //O homem 
private Bestfriend //tem um melhor amigo
dog; //? soh não  como provar que ele é um cão! mas ele deve implementar uma interface Bestfriend
}
Ironlynx

NDA!
Estou com o Thingol, teria que ser assim:
class Man { private Bestfriend friend = new Dog(); }
= Homens têm um melhor amigo que é um cão

Criado 6 de novembro de 2006
Ultima resposta 7 de nov. de 2006
Respostas 6
Participantes 5