What is the main difference between extending the Thread class and implementing the Runnable interface?
Extending Thread allows multiple inheritance
Implementing Runnable allows multiple inheritance
There is no practical difference
Runnable is more memory-efficient