Q4. Consider these classes, defined in separate source files,
public class Test1{
public float aMethod(float a, float b) throws IOException{
}
}
1. public class Test2 extends Test1{
2.
3. }
Which of the following methods would be legal at line 2 in class Test2?
A. float aMethod(float a, float b){}
B. public int aMethod(int a, int b) throws Exception{ }
C. public float aMethod(float a, float b) throws Exception{ }
D. public float aMethod(float p, float q){ }
Correct Answer: D
Explanation:
B and D are correct. B is legal as it is an example of method overloading.
A is illegal because it is less accessible than the original method, because method in Test1 is public. And for any overriding method, accessibility must not be more restricted than the original method.
C is illegal because for overriding method, it must not throw checked exception of classess that are not possible for the origincal classes.
Disclaimer: Simulationexams.com is not affiliated with any certification vendor, and Sim-Ex™ Practice Exams are written independently by SimulationExams.com and not affiliated or authorized by respective certification providers. Sim-Ex™ is a trade mark of SimulationExams.com or entity representing Simulationexams.com.SCJP® is a trademark of Oracle™.