【发布时间】:2014-02-06 16:52:58
【问题描述】:
例如,我有两个类:
class Foo
{
protected void say() {...};
}
class Bar extends Foo {.....}
我能否以某种方式允许“say”方法仅从 Bar 和其他派生类调用,而不是从 Foo 包中的其他类调用。
【问题讨论】:
-
制作 Foo
abstract可能是一个适合您的架构的解决方案。 -
@Merguez 我不明白这可能是一个解决方案......
-
@m0skit0 我想我误解了一点。但这会使不扩展 Foo 的类无法访问
say()方法(因为您无法生成 Foo 的实例) -
@Merguez 您确实是正确的,如果不需要 Foo 实例,这将是一个有效的解决方案。
-
遗憾的是,可能需要 Foo 实例来提供默认实现。此外,如果 Bar 与 Foo 在同一个包中,它的“say”方法也可以被其他类访问。所以摘要不是 100% 正确的决定。然而,这是一个有趣的想法。
标签: java inheritance protected