我正在为界面编码。我有一个接口(interface)A和一个实现它的类B。我被告知我可以通过C扩展B的功能来覆盖它,但我被要求既不接触B也不接触C,然后在配置文件中将B替换为C作为A的实现类。我认为我需要一个在A中不可用的方法,所以我需要向A添加一个我可以在C。但我不允许触摸A。有人可以帮我解决这个问题吗?谢谢。编辑:示例代码:A.javapublicinterfaceA{voidX();voidY();}B.javapublicclassBimplementsA{publicvoidX(){//somethinginteresting}publicvoidY(){//somethin
这个问题在这里已经有了答案:Javadynamicbindingandmethodoverriding(12个答案)关闭8年前。我有3个类GrandParent、Parent和Child,其中ChildextendsParent和ParentextendsGrandParentpublicclassMain{voidtest(GrandParentgp){System.out.println("GrandParent");}voidtest(Parentp){System.out.println("Parent");}publicstaticvoidmain(Stringargs[])
关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭6年前。Improvethisquestion在这本书中,它说:AlimitationofArrays.asList()isthatittakesabestguessabouttheresultingtypeoftheList,anddoesn'tpayattentiontowhatyouareassigningitto.这本书是BruceEckel的ThinkinginJava然而,下面的代码工作正常,与本书第280页中显示的代码相反pub
publicclassTest{staticinti=1;staticvoidm1(){}}classTest1extendsTest{inti=1;//allowedvoidm1()//notallowed;Bothareinstancelevel,sowhythisdifference?Bothcanbeaccessedwithsuperkeyword{}}为什么不能用相同的签名隐藏静态方法,而允许静态字段这样做呢?都是实例级的,为什么只允许静态字段? 最佳答案 类Test中的m1()是一个static方法,而中的m1()Tes
我正在开发程序/游戏,其中我有带参数的静态实用程序类。classParamsGeneral{publicstaticfinalintH_FACTOR=100;publicstaticintMAX_SCORE=1000;...}然后我需要在某些特定情况下覆盖此值,例如在分数有限的map上玩游戏。所以我做了以下操作:classParamsLimitedextendsParamsGeneral{publicstaticintMAX_SCORE=500;//otherparamsstaysame}预期用途如下:classPlayer{ParamsGeneralpar;publicPlayer(
关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭7年前。Improvethisquestion我有一个JAVA类A,它有一个方法fooabstractclassA{abstractvoidfoo();}我还有一个A的派生类-MutableA。MutableA是一个单例对象,表示不需要更新,这对于重用代码流很有用。决不应该在MutableA上调用foo()。实现该目标的最佳方法是什么:抛出不受支持的异常什么都不做(空实现)这是一个糟糕的设计。有人可以向我推荐这种情况下的最佳做法是什么
我正在尝试在Clojure中扩展一个JavaSwing组件,即我想扩展一个javax.swing.JComponent并添加一些在纯Clojure中实现的自定义方法以及所有标准继承方法。我尝试过使用“代理”,如果我只想要一个实例(与匿名内部类的方式相同),它会很好用。但是我真的很喜欢一个命名类,这样我就可以生成任意数量的实例。推荐的做法是什么? 最佳答案 使用gen-class(请注意,您可以将其用作内联函数或在命名空间声明中使用)。(gen-class:extendsjavax.swing.JComponent...)
考虑具有InnerClass的类OuterClasspublicclassOuterClass{classInnerClass{}}第二个类,它试图扩展OuterClass的InnerClasspublicclassClazzextendsOuterClass.InnerClass{publicClazz(OuterClassouterClass){outerClass.super();}}到目前为止一切顺利,这段代码可以工作,编译器应该不会发出警告。但我想了解-为什么有必要将其传递给OuterClass的构造函数引用?为什么有必要调用它的super构造函数?我想了解为什么必须这样精确
实例变量什么时候初始化?是在构造函数block完成之后还是之前?考虑这个例子:publicabstractclassParent{publicParent(){System.out.println("ParentConstructor");init();}publicvoidinit(){System.out.println("parentInit()");}}publicclassChildextendsParent{privateIntegerattribute1;privateIntegerattribute2=null;publicChild(){super();System.
这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Whydoesn’tJavaallowgenericsubclassesofThrowable?我正在尝试在这样的泛型类中创建一个常规的RuntimeException:publicclassSomeGenericClass{publicclassSomeInternalExceptionextendsRuntimeException{[...]}[...]}这段代码让我在RuntimeException这个词上出错说ThegenericclassSomeGenericClass.SomeInternalEx