【发布时间】:2017-08-03 19:54:54
【问题描述】:
我正在编写一个程序,其中特定类中有很多方法,因此我决定编写一个抽象类来帮助跟踪方法。
现在,考虑一下:我在抽象类中声明了一个抽象方法,而在另一个类(它扩展了抽象类)中,我想覆盖这个方法,但访问权限降低为私有。在这里,编译器出现了问题。它表示正在尝试分配较弱的访问权限,这是不允许的。如果我尝试将抽象类中的方法声明为受保护(我还在子类中将私有方法更改为受保护),它表示修饰符 abstract 和 protected 不能一起使用。
那么,我该怎么办?我是否必须在两个类中将方法包访问或公开?如果是这样,我没有办法将这些方法声明为私有吗?
请注意,我只要求抽象类,而不是一般的所有类。
【问题讨论】:
-
抽象类如何帮助“跟踪方法”?
-
你绝对可以有一个
protected abstract方法。 -
顺便说一句,这看起来像XY Problem。您可能应该详细说明您要完成的工作。
-
@ScottHunter 为什么不呢?比如说,你在一个特定的类中有 12 个方法。声明一个抽象类有助于在一个地方查看所有方法定义,还有助于跟踪它们的签名和返回类型。
-
lol @WrichikBasu 使用 IDE 来探索和导航所有类方法,不是吗?
标签: java abstract-class