Given:
1. interface A { public void aMethod(); }
2. interface B { public void bMethod(); }
3. interface C extends A,B { public void cMethod(); }
4. class D implements B {
5. public void bMethod(){}
6. }
7. class E extends D implements C {
8. public void aMethod(){}
9. public void bMethod(){}
10. public void cMethod(){}
11. }
What is the result?
A.
Compilation fails because of an error in line 3.
B.
Compilation fails because of an error in line 7.
C.
Compilation fails because of an error in line 9.
D.
If you define D e = new E(), then e.bMethod() invokes the version of bMethod() defined in Line
5.
E.
If you define D e = (D)(new E()), then e.bMethod() invokes the version of bMethod() defined in
Line 5.
F.
If you define D e = (D)(new E()), then e.bMethod() invokes the version of bMethod() defined in
Line 9.