title: Why do we need to override run() method extending thread class
body: <p>Why do we need to override <code>run</code> method of <code>thread</code> class when extending it. As long as I know when we extend a class we override methods which are abstract. But run method has definition public void main(). Why is it mandatory to override it. </p>