Java 如何更改父类的一部分';从它继承时,它是构造函数吗?

Java 如何更改父类的一部分';从它继承时,它是构造函数吗?,java,inheritance,subclass,Java,Inheritance,Subclass,我有一些类,我想用它做一个对象。然而,这个类的构造函数中有一个属性集,这使得它对我来说不可用。我不能编辑这个类的代码,因为它存在于一个非常紧凑的代码库中。此属性在构建对象后无法更改,因此即使存在setter方法,也无法工作(它是SWT gui框架的一部分,不能动态更改) 我的直觉告诉我要对它进行分类,并改变我需要改变的东西。应该只写几行,因为本课程的其他方面都将保持不变。然而,由于您需要在子类的构造函数中调用的第一行是super方法,这意味着在我做任何事情之前就调用了父类的构造函数 有没有什么方

我有一些类,我想用它做一个对象。然而,这个类的构造函数中有一个属性集,这使得它对我来说不可用。我不能编辑这个类的代码,因为它存在于一个非常紧凑的代码库中。此属性在构建对象后无法更改,因此即使存在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\u object
important\u property
的setter,并且您无法使用,则无法更改属性。

有一种称为classworking的方法,允许您在运行时修改Java字节码,但这绝对不是一件小事,这可能太过分了。虽然这是一本很有趣的书


如果您发布代码而不是试图描述代码,我们将更容易理解您的问题。代码有数百行,但我将尝试为您创建一个重要部分的psuedo实现。听起来有点像……更改值的确切原因是什么?你想实现什么?我同意@copeg,因为你可能会打破(原始)类所依赖的一些条件。如果更改属性,可以尝试更改需要更改的属性。如果不能使用反射,则无法在子类中保存该字段的值。如果不允许反射,则我也看不到这一点得到批准。:)是的,我完全同意,不过我想如果OP真的想知道的话,他可能会觉得这项技术很有趣。谢谢你的技术,@Acapulco。这也是违反规定的,但知道这一点很好:)