Discussion :: Declarations and Access Control
-
class A
{protected int method1(int a, int b)
{
return 0;
}
}
Which is valid in a class that extends class A?
A.
public int method1(int a, int b) {return 0; } |
B.
private int method1(int a, int b) { return 0; } |
C.
public short method1(int a, int b) { return 0; } |
D.
static protected int method1(int a, int b) { return 0; } |
Answer : Option A
Explanation :
Option A is correct - because the class that extends A is just simply overriding method1.
Option B is wrong - because it can't override as there are less access privileges in the subclass method1.
Option C is wrong - because to override it, the return type needs to be an integer. The different return type means that the method is not overriding but the same argument list means that the method is not overloading. Conflict - compile time error.
Option D is wrong - because you can't override a method and make it a class method i.e. using static.
Be The First To Comment