about 1. why it flexible using Interface .. is this because we can extend some other object?
about 2. what OO options are option, I think only option open (other options are still available by subclassing also) by using an Interface is mutliple inheritance.

about 1. why it flexible using Interface .. is this because we can extend some other object?

Because In the Runnable version you just create one ThreadedClass object and then created a bunch of Thread objects based on this Runnable object. Where as In "extends Thread" version, you actually have to create a new ThreadedClass object per thread that you want to start.

Quote:

Originally Posted by prashantSum

about 2. what OO options are option, I think only option open (other options are still available by subclassing also) by using an Interface is mutliple inheritance.

Yes You have an option of inheriting the clas from other Class if you wish to as you have not blocked the single inheritance by sub classing it.

if the thread class you are creating is to be subclass of some other class, it can’t extend from the Thread class. This is because Java does not allow a class to inherit from more than one class. In such a case one can use Runnable interface to implement threads.