有以下Java程序,请问最后的t.printValue(10)会调用哪一个方法?(选择注释中编号) class Person { public void printValue(int i, int j) { } //1 public void printValue(int i){ } //2 } public class Teacher extends Person { public void printValue() { } //3 public void printValue(int i) {} //4 public static void main(String args[]){ Person t = new Teacher(); t.printValue(10); } } A. 1 B. 2 C. 3 D. 4
时间: 2024-04-21 09:30:10 浏览: 120
B. 2。
因为 t 是 Person 类型的引用,尽管它实际引用的是 Teacher 类的一个对象,但是编译器会根据引用的类型决定可以调用哪些方法。在 Person 类中定义了一个参数为 int 的 printValue 方法,而这个方法正好符合 t.printValue(10) 的调用方式,因此该方法会被调用。而 Teacher 类中的其他方法不会被调用。
阅读全文