示例代码:
public class A {
public int number;
public A(int number) {
this.number = number;
}
public int getNumber() {
return number;
}
}
public class B extends A{
public int number;
public B(int number) {
super(number);
}
public int getNumber() {
return number;
}
}
public class C {
public static void main(String args[]) {
A test1 = new B(2);
B test2 = new B(2);
System.out.println(test1.number) // prints 2
System.out.println(test2.number) // prints 0
System.out.println(test1.getNumber()) //prints 0
System.out.println(test2.getNumber()) // prints 0
}
}
如上所示,test1.number 不等于 test1.getNumber()。
因此,当我使 test1 成为 A 类型的对象时, test1.number 指的是 A 类中的 int 数。
但是当我调用 test1.getNumber() 时,它是在 B 类中调用 getNumber() 吗?
为什么会这样?
慕侠2389804
长风秋雁
慕斯王
相关分类