Given:
class Mid {
public int findMid(int n1, int n2) {
return (n1 + n2) / 2;
}
}
public class Calc extends Mid {
public static void main(String[] args) {
int n1 = 22, n2 = 2;
// insert code here
System.out.print(n3);
}
}
Which two code fragments, when inserted at // insert code here, enable the code to compile and print 12?
A.
Calc c = new Calc();
int n3 = c.findMid(n1, n2);
B.
int n3 = super.findMid(n1, n3);
C.
Calc c = new Mid();
int n3 = c.findMid(n1, n2);
D.
Mid m1 = new Calc();
int n3 = m1.findMid(n1, n2);
E.
int n3 = Calc.findMid(n1, n2);
題解
findMid是物件方法,必須要實體化出Calc或是Mid的物件才能使用,因此選項B、E是錯的。
Calc類別繼承Mid類別,所以Calc物件型態可以隱含式(implicit)轉型為Mid物件型態,反之則不行,因此選項C是錯誤的。
最後剩下的選項A、D是正確的。