关于java

时间:2017-08-03 19:54:55

标签: java abstract-class

我正在编写一个程序,其中特定类中有很多方法,所以我决定编写一个抽象类来帮助跟踪这些方法。

现在,考虑一下:我在抽象类中声明了一个方法,在另一个类(扩展抽象类)中,我希望重写此方法,但将访问权限减少为私有。在这里,编译器给出了一个问题。它表示正在尝试分配较弱的访问权限,这是不允许的。如果我尝试将抽象类中的方法声明为protected(我也将私有方法更改为子类中的protected),则表示不能同时使用抽象和受保护的修饰符。

那么,我该怎么办?我是否必须在两个类中对方法包进行访问或公开?如果是这样,我是否无法将这些方法声明为私有?

请注意,我只要求抽象类,而不是所有课程。

2 个答案:

答案 0 :(得分:1)

你是什么意思不能protected abstract - 当然可以

首先,编译器和语言本身基本上禁止你想要做的事情。

答案 1 :(得分:0)

您的问题的答案是:您无法做任何事情来降低父类声明的方法的可见性。

如果你可以通过&#34来重述你想要完成的事情;跟踪方法"在抽象的父类中,您可能会得到不同的解决方案。