gpt4 book ai didi

java - 从父类继承时如何更改其构造函数的一部分?

转载 作者:行者123 更新时间:2023-11-30 08:11:54 24 4
gpt4 key购买 nike

我有一些类(class),我想用它制作一个对象。但是,此类在其构造函数中设置了一个属性,这使我无法使用它。我无法编辑此类的代码,因为它存在于非常紧凑的代码库中。此属性在对象构造后无法更改,因此即使有 setter 方法,它也不起作用(它是 SWT gui 框架的一部分,不能动态更改)。

我的直觉告诉我将其子类化并更改我需要更改的内容。应该只需要几行,因为这个类的每个其他方面都将保持不变。但是,由于您需要在子类的构造函数中调用的第一行是 super 方法,这意味着在我做任何事情之前就调用了父类的构造函数。

有什么方法可以让我只更改一个小属性就可以从此类中创建一个对象,而不必创建一个复制/粘贴其所有代码的全新类,除了像 8 中的一个小更改?

谢谢!

编辑:因为有人请求代码:

public class Parent {
private Object important_object = null;
public Parent() {
important_object = new Object();
important_object.important_property = BAD;
}
}

public class Child extends Parent {
public Child() {
// how the heck do I make an instance of this
// class that has important_property set to GOOD
// instead of BAD?
}
}

最佳答案

如果属性是private,则不会提供important_objectimportant_property 的setter,您不能使用Reflection那么就没有办法改变属性。

关于java - 从父类继承时如何更改其构造函数的一部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30788638/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com