thread program

>>What will happen when you attempt to compile and run this code?

public class Runt implements Runnable{
public static void main(String argv[]){
        Runt r = new Runt();
        Thread t = new Thread(r);
        t.start();
        }

        public void start(){
        for(int i=0;i<100;i++)
                System.out.println(i);
        }
}
1) Compilation and output of count from 0 to 99
2) Compilation and no output
3) Compile time error: class Runt is an abstract class. It can't be instantiated.
4) Compile time error, method start cannot be called directly


Answer

3) Compile time error: class Runt is an abstract class. It can't be instantiated.

The class implements Runnable but does not define the run method.








I have not understood above question and answer clearly from link
http://www.jchq.net/certkey/0701certkey.htm 

>>class Runt is an abstract class

Runt never mentioned as abstract any where.



Any ideas, resources, links, sample code highly appreciated. thanks in advance.
LVL 7
gudii9Asked:
Who is Participating?
 
for_yanConnect With a Mentor Commented:

About "abstract" it is diagnostic message,
as compiler saw "implements Runnable" it added
method
public void run()
to the list of methods which need to be implemented

This list could also have some methods which could have been
there becuaes the class coul have extended some abstract class
Compiler makes common pool of all methods which need to be implemented
Then it checks those whiich are indeed implemented aginst those which need to
be implemeneted - abnd discovers
that some are not - so it makes conclusion that
this class cannot be instantiated as it has some methods not implemeneted
I think it is just wording of error message taht may be a little bit confusing
but the point is the same
public void run()
is not implemented

0
 
for_yanCommented:
Runt declares that it implements Runnable.

If so, it should implement
public void run() method

If it does not  (like in this code) it will immedaitely generate compiler error
0
 
objectsConnect With a Mentor Commented:
3) is actually only partly correct in that it won't compile.
"class Runt is an abstract class. It can't be instantiated." - that is not the reason, you would only get that error if Runt was declared abstract (which its not)
The compiler error will be "The type Runt must implement the inherited abstract method Runnable.run()"
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.