gpt4 book ai didi

java - 如何防止子类继承父类(super class)中的静态方法

转载 作者:行者123 更新时间:2023-12-01 07:11:18 24 4
gpt4 key购买 nike

考虑到一些安全问题,我不想让子类继承父类(super class)的静态方法,甚至不调用这个方法,我该怎么办?请帮忙!

最佳答案

静态方法的继承意义与实例方法不同。如果将静态方法声明为公共(public)(或包私有(private)),则无论子类中是否存在本地重新声明,该方法都可以访问。局部重新声明仅仅意味着子类必须限定方法的名称;例如

public class Parent {
public static void foo() { ... }
}

public class Child {
public static void foo() { ... }
public static void main(String[] args) {
foo(); // calls local override
Parent.foo(); // calls original version.
}

如果您不想要 Child类能够调用Parent.foo方法,那么你需要将其声明为private (或者如果 ChildParent 位于不同的包中,则可能是包私有(private)。)

但即便如此,如果 Child类有使用反射的权限,那么它可以轻松地使用它来调用 private Parent中的方法类(class)。因此,除非您对代码进行沙箱处理,否则 Java 访问修饰符并不是一种安全机制。

关于java - 如何防止子类继承父类(super class)中的静态方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13852247/

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