Hi,
I believe that
1) Yep, wildcard statement in "import books.*" means that you will be able to use all classes from package books in your source file. Note that if you also have package named books.whateverbooks, it won't be included, that is, wildcard is not recurrsive.
2) I think yes.
3) I believe it is optional here... Try compiling it.
4) It also inherits it as protected as long as you tell the compiler to do so, that is, define the overidding method as protected as well. When you override a method, it's access modifier can stay the same, or be less restrictive. So, assuming method is called myMethod, in the subclass you can either have public myMethod(){} or protected myMethod(){}
Be warned that this is the 2nd day I am studying for SCJP...