gpt4 book ai didi

java - 限制子类访问父类方法

转载 作者:行者123 更新时间:2023-12-03 23:02:33 24 4
gpt4 key购买 nike

假设我有一个接口(interface) I 和类 A 和 B。

interface I
{
method();
}

class A implements I
{
method()
{ //Implementation 1
}
}

class B extends A
{
method()
{ //Implementation 2
}
}

我想限制 B 访问“方法”。对 b.method() 的调用应始终使用 a.method() 而不是 b.method 实现,其中 a 和 b 分别是 A 和 B 的实例。有什么解决方法吗?

希望接口(interface)支持另一个访问修饰符来处理这种情况。

最佳答案

正如 stealthjong 在他们的评论中提到的,您可以通过 A 实现 method() final 来实现这一点:

interface I {
public void method();
}

class A implements I {
public final void method() {
System.out.println("Hello World!");
}
}

class B extends A { }

因为 Afinal 修饰符应用于 method() 的实现,所以 B 无法重新定义它并将始终调用它从 A 继承的版本。

如果我要写:

B instance = new B();
instance.method();

我会看到输出 "Hello World!"

关于java - 限制子类访问父类方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25243288/

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