1. public void run() has to appear like this in code which implements Runnable.It's signature must stay the same and with no args added to the param. Is this correct?
2. Do the same rules apply to code that extends Thread as well, or is it OK if we even don't include this method in the code - will it give compile time error?
3. I know that Runnable is an abstract class and that the run() method is abstract, and can therefore understand that it must appear in code that implements Runnable. If you didn't incl run(), would that mean that you'd have to declare the class that implements Runnable as abstract?
4. Am I right in saying that Thread class already inherits from Runnable? If that's the case what implications does that have on Thread class?