Extends Thread vs implements Runnable

Kita tahu bahwa kita bisa membuat thread dengan dua cara tersebut di atas, tetapi pertanyaannya adalah kapan kita harus memakai cara yang satu dan bukan yang lain? Apa kelebihan metode yang satu dibandingkan yang lain?

Alasan dan pendapat yang dikumpulkan:

  1. Phylosophical :

  • Dikatakan, meng-extends suatu kelas konkret selalu lebih berisiko dan bukan pilihan yang baik (Keuntungan abstraction).

  • According to Cay S. Horstmann and Gary Cornell in Core Java 2: Volume II – Advanced Features…

“…forming a subclass of the Thread class … is no longer recommended. You should decouple the task that is to be run in parallel from the mechanism of running it.”

  1. Practical :

  • Lebih baik menggunakan interface Runnable karena dengan demikian kelas tersebut masih bisa meng-extends superclass lain.
  • Kelas Thread itu sendiri sebenarnya juga meng-implements Runnable, artinya jika kita extends Thread, sebenarnya kita secara tidak langsung juga implements Runnable, jadi kenapa kita tidak secara langsung meng-implements Runnable saja?

hm.. barangkali ada alasan menarik lainnya..?

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s