I think nirjari's question is whether extending the Thread class implies having to implement the run() method. This is not the case, your extended class inherits the run() method which is already in the Thread class. I think you confuse the 2 ways of defining a thread:
1) Extend the Thread class and override the run() method.
2) Implement the Runnable interface and implement the run() method.