Threads can be created in two ways.
1.Either by extending "thread" or
2.Implementing Runnable interface.
However,the best alternative is to go for option 2.
Because,in case of option 1(subclassing thread),if a thread needs to extend any additional classes,it is not possible as java does not support Multiple Inheritance.And u know that interface is a replacement for multiple inheritance.This is one primary reason.