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.
And since the inner class can have static final fields, rather than final field, they(static final fields) are compile time time constants. So you can't initialize them in Constructors rather than on the declaration time..
For the first question, nested interfaces are always implicitly static. Meaning they're automatically static even if you don't declare them as static.
For the second question, I don't understand your confusion. The statement was made that a non-static member class cannot have any static fields, unless they are either inherited or they are compile-time constants (which is what Abimaran describes). You tried to make a non-static member class with a static field. It didn't compile. The error message you get is "inner classes cannot have static declarations". So what's the problem? Mughal & Rasmussen said you can't do this, and the compiler also told you that you can't do this. M&R are correct.
I haven't studied inner classes yet, but what is the design logic for the Java programming language NOT to allow inner classes to have static declarations. Is there only ONE instance of an inner class, hence there is no need to have any static variables? Please clarify.