Pessoal, eu realmente não entendi essa questão…alguem pode me ajudar?
- interface A { public int getValue() }
- class B implements A {
- public int getValue() { return 1; }
- }
- class C extends B {
- // insert code here
- }
Which three code fragments, inserted individually at line 15, make use
of polymorphism? (Choose three.)
A. public void add(C c) { c.getValue(); }
B. public void add(B b) { b.getValue(); }
C. public void add(A a) { a.getValue(); }
D. public void add(A a, B b) { a.getValue(); }
E. public void add(C c1, C c2) { c1.getValue(); }
Answer: BCD
obrigada
Na alternativa A você recebe uma instância de C como argumento, e como C não é pai de ninguém, não tem como fazer uma chamada polimórfica, concorda?
Na alternativa B você recebe uma instância de B, então pode enviar para esse método tanto um B quanto um C, já que C É-UM B, possibilitando assim uma chamada polimórfica.
Na alternativa C você recebe uma instância de A, então pode enviar para esse método tanto um B quanto um C (ou qualquer outra coisa que implemente A), já que C É-UM B e B É-UM A, possibilitando assim uma chamada polimórfica.
Na alternativa D você recebe uma instância de A e uma de B, e ambas como vimos acima, possibilitam chamadas polimórficas.
Na alternativa E você recebe duas instâncias de C, e como vimos acima, com isso não podemos fazer uma chamada polimórfica.
entendido… Obrigada Rodrigo 