编译器认为以下代码无效:classFoo{voidfoo(Stringfoo){...}}classBarextendsFoo{@Overridevoidfoo(Objectfoo){...}}我认为这在JLS8.4.8.1中有所描述。:“m1的签名是m2签名的子签名(第8.4.2节)。”而在8.4.2中:“对应类型变量的边界是相同的”。我的问题是:为什么子类型(Bar)中的参数不能是父类(superclass)型(Foo)中参数的父类(superclass)型。在示例中,Object是String的父类(superclass)型。据我所知,允许这样做不会违反LiskovSubstit
我有一个父类,它有一个方法,在子类中我覆盖了该父类的方法。在第三个类中,我创建了一个子对象,并通过使用该对象调用父类的方法。是否可以调用该父类方法?如果是,那么如何? 最佳答案 如果您在子对象中覆盖父方法,子对象将始终使用被覆盖的版本。但;您可以使用关键字super来调用父方法,在子方法的主体内。publicclassPolyTest{publicstaticvoidmain(Stringargs[]){newChild().foo();}}classParent{publicvoidfoo(){System.out.println
我是一个初学者,正在学习spring和hibernate(在项目中使用maven)并且遇到了这个问题并被困在这里。试图找到解决方案,但最终无处可去。请帮忙。非常感谢错误:“找不到”http://java.sun.com/jsp/jstl/core的标记库描述符"代码:尝试了Thesuperclass"javax.servlet.http.HttpServlet"wasnotfoundontheJavaBuildPath中给出的解决方案HowdoIimportthejavax.servletAPIinmyEclipseproject?错误仍然存在pom.xml4.0.0com.jou
考虑一组类似于MVP的类型。存在一个带有View接口(interface)的抽象Presenter:publicinterfaceView{//...}publicabstractclassAbstractPresenter{@InjectVview;//...}然后,让我们有一个具体的具体演示者子类,它的View接口(interface)和实现:publicinterfaceLoginViewextendsView{//...}publicLoginPresenterextendsAbstractPresenter{//...}publicclassLoginViewImplimpl
我有一个抽象类Vehicle有2个已实现的子类RedVehicle和YellowVehicle.在另一个类(class)我有一个List包含两个子类的实例。我希望能够将一个类类型传递给一个方法,然后使用该类型来决定我想要在List中对哪组对象做某事。.自从Class是通用的我应该用一些东西参数化它,但是把参数作为父类Vehicle停止调用代码从exampleMethod开始工作现在期待一种Vehicle,而不是RedVehicle的子类或YellowVehicle.我觉得应该有一种干净的方法来做到这一点,那么实现该功能的正确方法是什么?n.b.我不一定要传入Class输入,如果有更好的
给定一组类,找到最近的公共(public)父类(superclass)的最佳方法是什么?例如,给定以下内容:interfaceA{}interfaceB{}interfaceABextendsA,B{}interfaceC{}classAImplimplementsA{}classABImplimplementsAB{}classABImpl2implementsA,B{}classBCImplimplementsB,C{}我希望以下内容(并非详尽无遗):commonSuperclass(A,AImpl)==AcommonSuperclass(A,B,C)==Objectornull,
我有一个类扩展到另一个类,而那个类又扩展到另一个类。class1extendsclass2class2extendsclass3class3extendsclass4class4extendsclass5class5extendsclass6现在我想找到第1类的所有父类(superclass)。有谁知道我如何在java中做到这一点? 最佳答案 使用Class.getSuperClass()遍历层次结构。ClassC=getClass();while(C!=null){System.out.println(C.getName());C
为什么我们不能在子类中覆盖父类(superclass)的实例变量? 最佳答案 他可能打算尝试覆盖用于初始化变量的值。例如,而不是这个(这是非法的)publicabstractclassA{Stringhelp="**nohelpdefined--somebodyshouldchangethat***";//...}//...publicclassBextendsA{//ILLEGAL@OverrideStringhelp="somefancyhelpmessageforB";//...}应该做的publicabstractclass
我继承了一些遗留的Java(1.4)代码,并且这个设计决策经常出现。我不明白这是否有任何目的或理由。publicinterfaceSoapFacadeextendsiConfigurable{}publicclassSoapFacadeBaseimplementsSoapFacade{...}publicclassSoapFacadeImplextendsSoapFacadeBaseimplementsSoapFacade{...}根据我对接口(interface)的理解(并且我的实验得到了加强),让父级和子级都实现相同的接口(interface)是没有意义的。在这种情况下,SoapF
Java程序员的简单问题-我不确定是否可以直接解决-请提供解决方法。我想访问父变量来初始化嵌套类成员,但不知道执行它的Java语法(如果可能的话)。如何使用父ID设置子ID。publicclassParent{finalStringid="parent";classChild{//itisinvalidsincescopehideparentid?finalStringid=id;}}我发现的最佳解决方案非常难看:publicclassParent{finalStringid="parent";//uglycloneStringshadow=id;classChild{finalStr