What will be the output?
class Parent{
public void method(){
System.out.println("Hi i am parent");
}
}
public class Child extends Parent{
protected void method(){
System.out.println("Hi i am Child");
}
public static void main(String args[]){
Child child = new Child();
child.method();
}
}
class Parent{
public void method(){
System.out.println("Hi i am parent");
}
}
public class Child extends Parent{
protected void method(){
System.out.println("Hi i am Child");
}
public static void main(String args[]){
Child child = new Child();
child.method();
}
}
A. Compiles successfully and print
B. Run Time error
C. Compile time error
D. None of These
Answer: Option C
Solution (By Examveda Team)
We cannot reduce the visibility of the inherited method from super class. If the overridden or hidden method is public, then the overriding or hiding method must be public; otherwise, a compile-time error occurs. If the overridden or hidden method is protected, then the overriding or hiding method must be protected or public; otherwise, a compile-time error occurs. If the overridden or hidden method has default (package) access, then the overriding or hiding method must not be private; otherwise, a compile-time error occurs.
Join The Discussion