You are right that A and B is correct and you are right on your reasoning for C and E, but not with D.
From the JLS
A compile-time error occurs if a native method is declared abstract.
I actually couldn't remember, so before I went to the JLS, I changed the method so it was abstract and ran the code with the abstract native method and sure enough, compile error saying native methods cannot be abstract.
Bill
[This message has been edited by bill bozeman (edited December 20, 2000).]