Questão 67 do TesKiller Edition 3

3 respostas
shepherdmoons

Pessoal não entendi a questão abaixo:

class Thingy{ Meter m = new Meter(); } 

class Component {void go() {System.out.print("c");}}

class Meter extends Component { void go() {System.out.print("m");}}

class DeluxeThingy extends Thingy{

public static void main(String[] args){

DeluxeThingy dt = new DeluxeThingy();

dt.m.go();

Thingy t = new DeluxeThingy();

t.m.go();
}
}

Ele pede para escolher duas opções:

A - The output is mm
B - The output is mc
C - Component is-a Meter
D - Component has-a Meter
E - DeluxeThingy is-a Component
F - DeluxeThingy has-a Component

No exercicio a resposta correta é A e F

Acertei a opção A, mas não entendi por que DeluxeThingy tem um Component que é a opção F?

3 Respostas

ironmarq

e aí shepherdmoons, estudando para certificação ???, é o seguinte:

Meter é um Component

Thingy tem um Meter, que é um Component

DeluxeThingy é um Thingy que herda a var.de instância Meter que é um Component

A pergunta está te testando sobre “É Um” e/ou “Tem Um” misturando herança entre classes para lhe confundir, realmente as respostas certas são A e F, pois DeluxeThingy herda o atributo Meter que é um Component.

jpjcjbr

Opa…

Tudo bem?

Veja o que você acha do seguinte raciocínio.

DeluxeThingy é um Thingy, correto?
Meter é um Componet, correto?

DeluxeThingy é um Thingy que tem um Meter, o Meter é um Component, ou seja, DeluxeThingy tem um Component.

flw

shepherdmoons

Vamos ver se entendi bem:

Meter herda de Component, então Meter é-um Component
Thingy tem-um Meter,
DeluxeThyngy é-um Thingy que tem-um Meter que é-um Component, logo DeluxeThyngy tem-um Component…rs

Eu pensei que por não estar instanciado na classe DeluxeThyngy a classe Component a questão estaria errada.

Agora entendi, meu muito obrigado aos colegas!

Criado 5 de fevereiro de 2012
Ultima resposta 6 de fev. de 2012
Respostas 3
Participantes 3