我有一个扩展类“ParentClass”的类“ChildClass”。与其完全替换父类的构造函数,我想先调用父类的构造函数,然后做一些额外的工作。我相信默认情况下会调用父类的0参数构造函数。这不是我想要的。我需要使用参数调用构造函数。这可能吗?我试过了this=(ChildClass)(newParentClass(someArgument));但这不起作用,因为您不能修改“this”。 最佳答案 您可以在子构造函数中使用“super”引用父构造函数。publicclassChildextendsParent{publicChild
我继承了一些遗留的Java(1.4)代码,并且这个设计决策经常出现。我不明白这是否有任何目的或理由。publicinterfaceSoapFacadeextendsiConfigurable{}publicclassSoapFacadeBaseimplementsSoapFacade{...}publicclassSoapFacadeImplextendsSoapFacadeBaseimplementsSoapFacade{...}根据我对接口(interface)的理解(并且我的实验得到了加强),让父级和子级都实现相同的接口(interface)是没有意义的。在这种情况下,SoapF
当从子类对象调用此方法时,是否有任何优雅的方法可以使位于父类中的Java方法返回子类的对象?我想在不使用额外接口(interface)和额外方法的情况下实现它,并且在不使用类强制转换、辅助参数等的情况下使用它。更新:对不起,我不是很清楚。我想实现方法链接,但是我对父类的方法有问题:当我调用父类方法时,我无法访问子类方法...我想我已经介绍了我的想法。所以方法应该返回this.getClass()类的this对象。 最佳答案 如果您只是在寻找针对已定义子类的方法链接,那么以下应该可以工作:publicclassParent{publi
考虑这段代码:classTest{Test(){System.out.println("InconstructorofSuperclass");}intadds(intn1,intn2){return(n1+n2);}voidprint(intsum){System.out.println("thesumsare"+sum);}}classTest1extendsTest{Test1(intn1,intn2){System.out.println("InconstructorofSubclass");intsum=this.adds(n1,n2);this.print(sum);}pu
如何将构造函数从父类(superclass)继承到子类? 最佳答案 构造函数不是继承的,您必须在子类中创建一个新的、原型(prototype)相同的构造函数,该构造函数映射到其在父类(superclass)中匹配的构造函数。这是一个如何工作的示例:classFoo{Foo(Stringstr){}}classBarextendsFoo{Bar(Stringstr){//HereIamexplicitlycallingthesuperclass//constructor-sinceconstructorsarenotinherited
新手Java问题。说我有:publicclassCar{...}publicclassTruckextendsCar{...}假设我已经有一个Car对象,如何从这个Car对象创建一个新的Truck对象,以便将Car对象的所有值复制到我的新Truck对象中?理想情况下,我可以这样做:Carc=newCar();/*...cgetspopulated*/Truckt=newTruck(c);/*wouldlikettohaveallofc'svalues*/我必须编写自己的复制构造函数吗?每次Car获得新字段时都必须更新它... 最佳答案
为什么当您在子类中重写方法时降低了方法的可见性时编译器会给出错误消息? 最佳答案 因为子类的每个实例仍然需要是基类的有效实例(参见Liskovsubstitutionprinciple)。如果子类突然失去了基类的一个属性(例如公共(public)方法),那么它将不再是基类的有效替代品。 关于java-为什么不能降低Java子类中方法的可见性?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/quest
很难说出这里问的是什么。这个问题是模棱两可的、模糊的、不完整的、过于宽泛的或修辞的,无法以目前的形式得到合理的回答。为了帮助澄清这个问题以便可以重新打开它,visitthehelpcenter.关闭11年前.什么是java中的“子类”?我知道类和方法,但我不知道子类。 最佳答案 子类是扩展另一个类的类。publicclassBaseClass{publicStringgetFoo(){return"foo";}}publicclassSubClassextendsBaseClass{}那么……System.out.println(n
我有3个类(class):publicclassAlpha{publicNumbernumber;}publicclassBetaextendsAlpha{publicStringnumber;}publicclassGamaextendsBeta{publicintnumber;}为什么下面的代码会编译?而且,为什么测试通过而没有任何运行时错误?@Testpublicvoidtest(){finalBetaa=newGama();a.number="itsastring";((Alpha)a).number=13;((Gama)a).number=42;assertEquals("i
这个问题在这里已经有了答案:CheckifaClassObjectissubclassofanotherClassObjectinJava(8个回答)关闭6年前。在一个android应用程序测试套件中,我有一个像这样的类,其中B是一个View:publicclassAextendsB{...etc...}现在我有一个View对象列表,其中可能包含A对象,但在这种情况下,我只关心它们是否是B的子类或“实例”。我想做类似的事情:ArrayListviewList=getViews();Iteratoriterator=viewList.iterator();while(iterator.h