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