Threads - Programming

Q1:

The following block of code creates a Thread using a Runnable target:
Runnable target = new MyRunnable();
Thread myThread = new Thread(target);
Which of the following classes can be used to create the target, so that the preceding code compiles correctly?

A public class MyRunnable extends Runnable{public void run(){}}

B public class MyRunnable extends Object{public void run(){}}

C public class MyRunnable implements Runnable{public void run(){}}

D public class MyRunnable implements Runnable{void run(){}}

ANS:A - public class MyRunnable extends Runnable{public void run(){}}

The class correctly implements the Runnable interface with a legal public void run() method. Option A is incorrect because interfaces are not extended; they are implemented. Option B is incorrect because even though the class would compile and it has a valid public void run() method, it does not implement the Runnable interface, so the compiler would complain when creating a Thread with an instance of it. Option D is incorrect because the run() method must be public.