关于java中抽象类的查询

关于java中抽象类的查询,java,abstract-class,Java,Abstract Class,我正在编写一个程序,其中一个特定类中有相当多的方法,因此我决定编写一个抽象类来帮助跟踪这些方法 现在,考虑一下:我已经在抽象类中声明了一个抽象方法,而在另一个类(扩展抽象类)中,我想重写这个方法,但是Access特权被还原为私有。这里,编译器给出了一个问题。它表示正在尝试分配较弱的访问权限,这是不允许的。如果我试图将抽象类中的方法声明为protected(我还将子类中的私有方法更改为protected),它会说修饰符abstract和protected不能一起使用 那么,我能做什么?我必须在两个

我正在编写一个程序,其中一个特定类中有相当多的方法,因此我决定编写一个抽象类来帮助跟踪这些方法

现在,考虑一下:我已经在抽象类中声明了一个抽象方法,而在另一个类(扩展抽象类)中,我想重写这个方法,但是Access特权被还原为私有。这里,编译器给出了一个问题。它表示正在尝试分配较弱的访问权限,这是不允许的。如果我试图将抽象类中的方法声明为protected(我还将子类中的私有方法更改为protected),它会说修饰符abstract和protected不能一起使用

那么,我能做什么?我必须在两个类中都使方法包访问还是公开?如果是这样,我是否无法将这些方法声明为私有


请注意,我只要求抽象类,而不是一般的所有类。

您的问题的答案是:您无法降低父类中声明的方法的可见性


如果您可以通过在抽象父类中“跟踪方法”来重申您试图完成的任务,那么您可能会得到不同的解决方案。

您的意思是,它不能被
保护,因为它当然可以


你想做的事情基本上是被编译器和语言本身禁止的

拥有一个抽象类如何帮助“跟踪方法”?你完全可以拥有一个
受保护的抽象方法。您可能应该详细说明您正试图实现的目标。@ScottHunter为什么不呢?比如说,在一个特定的类中有12个方法。声明一个抽象类有助于在一个地方查看所有的方法定义,也有助于跟踪它们的签名和返回类型。lol@WrichikBasu使用IDE来探索和导航所有的类方法,不是吗?