在Java中,我有一个抽象类,其中实现了一个方法(不是抽象的),我希望其他类可以访问它,而不是包中的其他所有者。
我认为这是不可能的,因为私有保密它,公共和受保护暴露太多..
你会如何处理这个问题?在所有扩展类中重新实现相同的方法是没有讨论的..有没有办法访问父方法?
谢谢!
答案 0 :(得分:2)
如果希望扩展类的任何内容都可以访问该方法,那么protected
是您想要的修饰符。这就是它的用途。
答案 1 :(得分:2)
but not by everyone else in the package..
那是不可能的。您可以使用protected
访问权限来允许子类访问,但也可以包含对同一包中每个类的访问权限。
答案 2 :(得分:1)
使用protected并创建一个仅包含抽象类及其子类的包。不要在该包中放置任何其他不应该访问受保护方法的类。
如果您担心其他人可能会在该软件包中创建一个新类并开始访问受保护的方法,那么实际上没有一种语言结构可以防止这种情况。您要么信任其他开发人员,要么拥有严格的同行评审流程。