We use interfaces to keep the real implementation (of the concrete class) hidden for the software which uses the interface. Some software calls on (abstract) methods on an interface, without knowing how that interface is implemented. This principle is called "abstraction".
Methods which are defined abstract HAVE TO be implemented by a concrete class.
When i was doing the mock exam on java blackbelt, I encountered some questions about forward referencing. Examples are:
I studied the book from Bert Bates (java5), but I didn't find information aboud forware referencing. Are questions about forward referencing in the SCJP java5 exam? If the answer is yes: where can i find more info on this topic?
it's hard to say and is different for everyone. I have to do the exam myself. In the faq of javaranch there is a line which states that when you have to much trouble making the mock exams, you should be ready to take the real exam.
class Thread inherits from the interface Runnable (which declares a method run()). The class Thread has a default implementation of the method run(). When you want to do specific actions within your thread, you can override the run() method.