草庐IT

java - 子类中存在但父类中不存在的调用方法

publicclassParent{....}publicclassChild1extendsParent{....publicvoidfoo(){....}}publicclassChild2extendsParent{....publicvoidfoo(){....}}这里的方法foo()只存在于子类中,不能添加到父类中(甚至抽象方法也不行)。在这种情况下,当我想在obj上调用foo()方法时,它是Parent类的引用,那么我需要使用intanceof与多个if..else我想避免。Parentobj=...//Objectofoneofthechildclassesobj.foo

java - 我如何在 Eclipse jdt ui 中获取父类(super class)节点?

我这里有一个代码:publicclassTestOverride{intfoo(){return-1;}}classBextendsTestOverride{@Overrideintfoo(){//error-quickfixtoadd"returnsuper.foo();"}}如您所见,我已经提到了错误。我正在尝试在eclipsejdtui中为此创建一个quickfix。但是我无法获得类TestOverride的类B的父类(superclass)节点。我试过下面的代码if(selectedNodeinstanceofMethodDeclaration){ASTNodetype=sel

Java - 将类型传递给父类(super class)静态方法

假设我有一个简单的类:publicclassTestClass{publicStringfield1="Field1";publicStringfield2="Field2";publicStringfield3="Field3";}我的项目中有多个pojo类,我希望能够将每个对象序列化为json。所以我创建了新的Serializer类(gson用于序列化):publicclassSerializer{publicStringtoJson(){returnnewGson().toJson(this);}}我的示例类扩展了Serializer:publicclassTestClassex

java - 使用 Guice,如何注入(inject)父类(super class)的构造函数参数?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:GuicewithparentsclassBook{stringtitle;}classChildrensBookextendsBook{}classScienceBookextendsBook{}我想在子类中注入(inject)书名,例如,childrensBook应该被分配标题“AliceinWonderland”,ScienceBook应该被分配“OntheOriginof物种”。我如何使用Guice完成此操作?(注意我不想覆盖子类中的title字段)

java - 当切入点在父类(super class)上但派生类覆盖时,如何避免两次击中切入点?

很难为它取一个简洁的标题。无论如何,假设我有一个父类:publicclassShape{publicDimensionsgetDimensions(){//Doessomegenericstuff.}}我有一个派生类,它覆盖了getDimensions方法:publicclassCircleextendsShape{publicDimensionsgetDimensions(){//Doessomestuff.super.getDimensions();}}当我在Shape.getDimensions上创建一个带有切入点的方面时,调用Circle.getDimensions时切入点被击

java - 使用 super 或只是 setTitle 调用父类(super class)构造函数?

在扩展javax.swing.JFrame时,推荐使用setTitle("Title")或super("Title")设置标题的方法是什么在性能方面? 最佳答案 如果您对JFrame(在OpenJDK6-b14中)进行grepcode,并深入挖掘,您会看到构造函数JFrame()调用了构造函数Frame(),它调用Frame("")(link)。因此,如果您自己不指定对任何super构造函数的调用,则会添加隐式super(),因此调用会更有效(尽管非常轻微)super(“标题”)。 关于

java - 这段代码如何继承父类的内部类?

下面是父类DblyLinkListpackageJavaCollections.list;importjava.util.Iterator;importjava.util.NoSuchElementException;publicclassDblyLinkListimplementsIterable{classDListNode{privateTitem;privateDListNodeprev;privateDListNodenext;DListNode(Titem,DListNodep,DListNoden){this.item=item;this.prev=p;this.next

java - 即使子类已经定义了构造函数,父类是否也总是需要一个默认的或无参数的构造函数?

我无法编译此代码。classHorse{privateintage;Horse(intage){this.age=age;}}classPonyextendsHorse{privateintage;Pony(intage){//herecompilercomplainsaboutnodefaultconstructorinparentclassthis.age=age;}}我知道当父类只有带有参数的构造函数时,您必须为子类定义一个构造函数,这就是我所做的。但是,编译器会提示父类没有默认构造函数。我得出父类总是需要默认或无参数构造函数的结论是否正确?如果我希望父类和子类只有带参数的构造函

java - 不能直接调用父类(super class)型构造函数——为什么不呢?

我有以下Java示例类:publicclassA{}publicclassSuper{protectedSuper(){}publicSuper(Aa){}}publicclassSubextendsSuper{}publicclassConsumer{publicConsumer(){Subsub=newSub(newA());//compilererror}}编译器错误指出参数不能应用于Sub中的默认构造函数,这是完全可以理解的。我很好奇的是这个决定背后的理由。Java在Sub中生成默认的空构造函数;为什么在这种情况下不能在幕后调用它?这主要是理智的手持情况,还是有技术原因?编辑我

Java:从父类(super class)列表中获取子类

我是java新手,对以下代码有2个问题:classAnimal{}classDogextendsAnimal{}classCatextendsAnimal{}classRatextendsAnimal{}classMain{Listanimals=newArrayList();publicvoidmain(String[]args){animals.add(newDog());animals.add(newRat());animals.add(newDog());animals.add(newCat());animals.add(newRat());animals.add(newCat