【发布时间】:2023-02-15 20:50:51
【问题描述】:
我有 2 个 Java 课程
1. public class A {
2. public int i = 1;
3. }
4.
5. public class B extends A {
6. int i = 2;
7. public void print() {
8. super.i = 3;
9. A obj = new B();
10. System.out.println(obj.i);
11. System.out.println(this.i);
12. System.out.println(super.i);
13. }
14.
15. public static void main(String [] args) {
16. new B().print();
17. }
18.}
当我运行上面的代码时,它会打印
1
2
3
所以我想知道为什么第 10 行和第 12 行打印不同的输出?我认为因为我分配了 super.i = 3 并创建了 A 的新对象,所以结果应该是 3、2、3。请帮助我
【问题讨论】:
-
super引用this实例,作为其超类的实例。obj与this是不同的对象。
标签: java inheritance super