This week's book giveaway is in the OCAJP 8 forum. We're giving away four copies of OCA Java SE 8 Programmer I Study Guide and have Edward Finegan & Robert Liguori on-line! See this thread for details.
Compile-time errors are generated at which lines? a. 1 b. 2 c. 3 d. 4 e. 5 f. None of the above. [/B]
In looking at this, I went through each implementation to see if it violated the rules for implementing an interface. All subclasses are concrete (non-abstract), so the question is: does each class implement public void m1()? Classes D, E, and F do. What about class G? It looks like an abstract method. I chose answer e, because it looks like a lack of implementation. My answer is wrong. The real answer is below (don't look yet). My question: How do native methods work?
A native method is implemented in a module which the JVM has to load before calling the method. The module is implemented in a language such as C, C++, PL/1 (yes, on IBM 390). There's something here that explains it all.
Unless you call the native method in your code JVM wouldn't even verify if the library in which the native method has implementation is included or not. So as long as you are not calling the native method every thing is OK. You can declare a method as native.