草庐IT

piracy-protection

全部标签

java - 为什么你不能在 Java 中有一个 protected 抽象类?

我有一个抽象类,如下所示:abstractclassAbstractFooimplementsBar{//Codegoeshere}但是,当我尝试使AbstractFooprotected时,我收到一个编译时错误,提示它是一个非法修饰符。protectedabstractclassAbstractFooimplementsBar{//Codegoeshere}为什么不能在Java中有一个protected抽象类?编辑:我应该提一下,这不是vanillaJava,实际上是Blackberry/J2ME。 最佳答案 正如许多其他人指出的

java - 帮助理解 protected 方法的问题

我正在阅读SybexCompleteJava2CertificationStudyGuide2005年4月(ISBN0782144195)。本书适用于想通过java认证的java开发者。在关于访问修饰符(以及其他修饰符)的一章之后,我发现了以下问题(#17):Trueorfalse:IfclassYextendsclassX,thetwoclassesareindifferentpackages,andclassXhasaprotectedmethodcalledabby(),thenanyinstanceofYmaycalltheabby()methodofanyotherinsta

java - 如果可能的话,是否有一种工具可以使所有类包都 protected 和最终?

背景:我注意到在许多项目中,几乎所有内部​​代码中的类都是公开的而不是最终的,即使它们不需要。然而,对我来说,不默认做出这个决定似乎是明智的,但只有当它们实际上是为了从系统的其他部分使用时才公开类。拥有包保护类是一种在模块之间强制执行边界的简单机制,并可作为类预期用途的文档。如果有一个(最好是免费的:-)工具来保护所有可以在不破坏程序的情况下被保护的类,并且可能使所有没有子类的东西成为最终的,那将是开始有意识地使用保护机制。(当然你需要事后调整。)你知道这样的工具吗?警告:我知道有更好的模块化机制,如OSGI和计划中的super包等。但在许多当前项目中,这不是一个选项,使用普通的旧Ja

java - 静态方法的 protected 修饰符的目的是什么

我发现了protected的这种用法为我的其他问题寻找解决方案时的修饰符:IgnoringcaseinstringswithunitilsReflectionComparator在org.unitils.reflectionassert.ReflectionComparatorFactory类有一个带有签名的方法:protectedstaticListgetComparatorChain(Setmodes)但这只是特例。毕竟我们总是可以扩展这样的任何非最终类并“覆盖”它是静态的protected新方法public修饰符。说,我们有一个类A:publicclassA{protecteds

java - 为什么我无法访问 protected 字段?

我正在学习java中的访问级别,我创建了3个类:在包my.inheritance中我有A类和C类packagemy.inheritance;publicclassA{protectedinta=15;}packagemy.inheritance;publicclassC{publicstaticvoidmain(String[]args){Aa=newA();System.out.println(a.a);}}在另一个名为my.inheritance.test的包中,我有一个类B试图访问int值a的protected字段,但编译器对此提示!packagemy.inheritance.t

java - 该方法只能设置 public/protected/private 之一

关闭。这个问题是notreproducibleorwascausedbytypos.它目前不接受答案。这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topic在这里,这个问题的解决方式不太可能帮助future的读者。关闭上个月。Improvethisquestion我正在实现一个接口(interface):publicinterfaceConsultant{//somedocumentationhereexplainingitshouldthrow3typesofexceptionsCellLocationsuggest(GameBoardgameBoard)

java - 使用父类(super class) "protected final"方法为子类保留公共(public)代码

作为一个(迂腐的)初学者Java程序员,我想知道,将所有子类使用的公共(public)代码块移动到单独的protected(final)父类中的方法?诸如用通用值填充列表或通用过滤算法等任务...是否也可以使用protected静态方法?classA{protectedfinalListgetVariants(){...}protectedfinalListfilterResults(Listvariants){...}}classBextendsA{publicListdoSomethingUsefull(){ListcommonVariants=getVariants();...r

java - 覆盖 protected 方法

我是Java新手,有一个非常基本的问题。我在同一个包下有2个父类。Animal抽象类和Machine类。现在,Animal抽象类有一个protected方法。我知道如果类在同一个包下,则可以访问protected方法。我可以在我的Machine类中访问那个protected方法,问题是……是否可以覆盖那个protected方法?不扩展Animal类。 最佳答案 protected-可以被子类覆盖,无论它们是否在同一个包中默认(无访问修饰符)-只有当两个类在同一个包中时才能访问或覆盖 关于

java - 如何在子类中访问父类(super class)的 ‘protected static’ 变量,子类位于不同的包中..?

这是同一问题的稍微详细的版本。我们不能在子类中访问(父类(superclass)的)protected变量,子类在不同的包中。我们只能访问父类(superclass)的继承变量。但是,如果我们将修饰符更改为“protectedstatic”,那么我们也可以访问父类(superclass)的变量。为什么会这样?这是我试图解释的相同代码片段。packagefirstOne;publicclassFirst{**protected**inta=7;}packagesecondOne;importfirstOne.*;publicclassSecondextendsFirst{protecte

Java : How to force a given protected method to be overloaded by children classes?

父类不是也不可能是抽象的。重载方法受到保护,因此不能在那里使用接口(interface)。考虑到这两个限制是否可以做到? 最佳答案 您不能强制覆盖该方法-这就是抽象方法的用途(您已声明这不是一个选项)。一种可能是让基类中的方法抛出一个UnsupportedOperationException。然后,子类必须覆盖它以防止抛出错误。这样,您至少可以检测该方法是否已被覆盖。例如:publicclassFather{publicvoidmethod(){thrownewUnsupportedOperationException();}}pu