为什么是 super.super.method(); Java中禁止?
使用super.super.method();由于封装问题,在 Java 中是被禁止的。封装旨在防止绕过父类的行为。
虽然有时绕过自己类的行为(在同一方法内)是合理的,但不要绕过父类的行为至关重要。考虑以下类层次结构:
定义以下内容是合乎逻辑的方法:
这确保子类遵守其父类施加的约束。
但是,如果允许 super.super.add(),恶意的 NaughtyCollection 子类可能会绕过 RedCollection 的红色项目要求:
这会破坏 RedCollection 建立的不变量,创建一个可能不是红色的项目集合。
因此,super.super Java 中禁止 .method() 调用以维护封装并强制执行类行为。
以上是为什么 Java 中不允许使用'super.super.method();”?的详细内容。更多信息请关注PHP中文网其他相关文章!