Analyze the following code:
public class Test {
public static void main(String[] args) {
B b = new B();
b.m(5);
System.out.println("i is " + b.i);
}
}

class A {
int i;

public void m(int i) {
this.i = i;
}
}

class B extends A {
public void m(String s) {
}
}
A. The program has a compile error, because m is overridden with a different signature in B.
B. The program has a compile error, because b.m(5) cannot be invoked since the method m(int) is hidden in B.
C. The program has a runtime error on b.i, because i is not accessible from b.
D. The method m is not overridden in B. B inherits the method m from A and defines an overloaded method m in B.

Respuesta :

Answer:

Option D: The method m is not overridden in B. B inherits the method m from A and defines an overloaded method m in B.

Explanation:

Method overriding in Java is done when you want a child class to give its own implementation to a method that is already provided by the parent class. The method in the parent class will be called overridden method, and the child class will be overriding method.

ACCESS MORE