ExamVeda
Login
Home
This question belongs to Java Program Inheritence
Inheritence
?

What is the result of the following code snippet?

class Parent {
private int x = 10;
}
class Child extends Parent {
int x = 20;
void display() {
System.out.println(super.x + " " + x);
}
}
public class Main {
public static void main(String[] args) {
Child obj = new Child();
obj.display();
}
}

Answer & Solution
Correct Answer: Option B
The given code snippet involves inheritance in Java. It defines two classes: Parent and Child. The Child class extends the Parent class, which means it inherits its fields and methods.

Inside the Parent class, there is a private integer variable x with a value of 10. In the Child class, there is another integer variable x with a value of 20. Additionally, the Child class has a display() method that prints the values of super.x and x.

In Java, when you access a variable with the super keyword, it refers to the variable of the superclass. When you access a variable without super, it refers to the variable of the current class.

Now, let's analyze what happens in the display() method:

- super.x refers to the x variable in the Parent class, which is 10.
- x refers to the x variable in the Child class, which is 20.

So, the display() method will print "10 20" because it first accesses the x variable of the superclass (Parent) using super.x and then accesses the x variable of the current class (Child) directly.

Therefore, the correct answer is:

Option B: 10 20
Examveda
Question posted by Examveda
Community

Join the Discussion

1 Comment
Test Mail
Test Mail 3 years ago
compile time error. x in super class is private