gpt4 book ai didi

java - 转换为 super 无法按预期工作

转载 作者:搜寻专家 更新时间:2023-11-01 01:28:56 24 4
gpt4 key购买 nike

为什么第二次调用会产生它的作用?我认为通过将 this 转换为 Super,只有 Super 的 m1() 应该被调用!!

Super!
And Sub!
---
Super!
And Sub!

代码:

public class TestSuper {
public static void main(String[] args) {
(new Sub()).m1();
System.out.println("---");
(new Sub()).m2(); // !!!!!!!!!!!!!!!!
}
}

class Super {
void m1() {
System.out.println("Super!");
}
}

class Sub extends Super {
void m1() {
super.m1();
System.out.println("And Sub!");
}

void m2() {
((Super) this).m1();
}
}

最佳答案

不,转换不会有帮助,因为它是用于选择要调用的 m1 的对象的动态类型。

下面的技巧:

    void m2() {
super.m1();
}

关于java - 转换为 super 无法按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7649920/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com