Examveda

Analyze the following code:
public class Test implements Runnable{
        public static void main(String[] args){
                Test t = new Test();
                t.start();
        }

        public void run() { }
}

A. The program does not compile because the start() method is not defined in the Test class.

B. The program compiles, but it does not run because the start() method is not defined.

C. The program compiles, but it does not run because the run() method is not implemented.

D. The program compiles and runs fine.

Answer: Option A

Solution (By Examveda Team)

Code Analysis:

     1. Implementing Runnable: The Test class implements the Runnable interface, which requires the implementation of the run() method.

     2. Creating an Instance: In the main method, an instance of Test is created (Test t = new Test();).

     3. Calling start() Method: The code then calls t.start();. However, start() is a method of the Thread class, not the Runnable interface.

     4. Compilation Error: Since Test implements Runnable and not Thread, it does not inherit the start() method from Thread. Therefore, calling start() on an instance of Test causes a compilation error because the start() method is not defined in the Test class.

Therefore, the correct option is A: The program does not compile because the start() method is not defined in the Test class.

This Question Belongs to Java Program >> Threads

Join The Discussion

Comments (4)

  1. Srinjoy Paul-2046
    Srinjoy Paul-2046:
    1 year ago

    option D is the correct option

  2. Srinjoy Paul-2046
    Srinjoy Paul-2046:
    1 year ago

    public class Test implements Runnable
    {
    public static void main(String[] args)
    {
    Thread t=new Thread(this);
    t.start();
    }
    public void run()
    {}
    }
    option D but the fact is that the output will be a garbage value

  3. Alok Anupam
    Alok Anupam:
    8 years ago

    No prachi ..code is implementing Runnable so start method can be called using
    new Thread(t).start();
    so (a) is correct

  4. Prachi Verma
    Prachi Verma:
    8 years ago

    why you have provided wrong options....correct option is option D

Related Questions on Threads

What is a thread in Java?

A. A lightweight process that runs independently within a program

B. A data structure to store variables

C. A type of loop

D. A synchronization mechanism