Because you're left with two dead birds instead of one?

A more serious answer would be that this stems from the early days of
Java, and it was not so convenient to supply a Runnable, because there
were no inner classes back then. A lack of experience with the
language at that point left open the possibility that subclassing
Thread to get various behaviours in addition to supplying the code to
be run might be a sensible strategy.

The documentation still offers extending thread as a co-equal option,
but offers no reason why you would do that. To more modern eyes, doing
so would be breaking down the separation of concerns. Not a serious
failing, but offering no real advantages either.

But at the time, the culture was much more focused in class hierarchy
and inheritance. Gradually, over the years, we have learned that
delegation, proxies, and related collaboration patterns are far more
flexible and less fragile.

On Oct 22, 2:32 pm, DanH <[email protected]> wrote:
> Thread implements Runnable mainly as a convenience.  When you want to
> start a thread you need a Runnable to execute.  You can supply a
> separate Runnable, but, since you're already creating a Thread, why
> not just make it a Runnable too, and kill two birds with one stone?

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to