84. What is the output of the following application?
Answer: D. One line of code does not compile.
But the answer should be:
E. Two lines of code do not compile. MyElectricBass class is also inheriting the problem from the ElectricBass class.
By compiling this code we can see the 2 compilation errors showing up:
Can we not have two of the same default methods in separate interfaces? Only in the case we implement both interfaces? good question. I wasnt aware of this. if someone can elaborate. I will try to compile also
Juan Pablo Barale
posted 2 years ago
If a class is implementing two interfaces with the same default method (firm), the class doesn't know which implementation to use, so you are forced to override it in order to compile.
The same problem occurs in the case an interface extends two interfaces with the same default method.
Ugh. I tested the example. In Eclipse, it shows one compiler error and at the command line it shows two. Which means the exam could ask about the first line that gives an error, but now how many (because it is ambiguous).
I added an item in the errata to say consider D or E to be correct.