What will be the output?
class A extends Thread{
public void run(){
for(int i=0; i<2; i++){
System.out.println(i);
}
}
}
public class Test{
public static void main(String argv[]){
Test t = new Test();
t.check(new A(){});
}
public void check(A a){
a.start();
}
}
class A extends Thread{
public void run(){
for(int i=0; i<2; i++){
System.out.println(i);
}
}
}
public class Test{
public static void main(String argv[]){
Test t = new Test();
t.check(new A(){});
}
public void check(A a){
a.start();
}
}
A. 0 0
B. Compilation error, class A has no start method
C. 0 1
D. Compilation succeed but runtime exception
E. None of these
Answer: Option C
Solution(By Examveda Team)
Class A extends Thread means the anonymous instance that is passed to check() method has a start method which then calls the run method.
public static void main(String...args){
Test t = new Test();
t.call(new A(){});
}
why new A() {} doesnot throw error due to {}
public static void main(String...args){
Test t = new Test();
t.call(new A(){});
}
why new A() {} doesnot throw error due to {}