有一个父类为超类SetupPane
现有多个类继承它,使用的时候都分别new出来,想请教在new 子类的时候如果设置父类的属性,让所有子类都能受其影响。说的更具体点:
在抽象类SetupPane上有个JTree,需要批量new 出SetupPane的子类,例如
addStepPane(new PageWoReceiveDebitAccountPane(this,true));
addStepPane(new PageWoIssueWipDebitAccountPane(this,true));
addStepPane(new PagePurchaseReceiveDebitAccountPane(this,true));
addStepPane(new PagePurchaseTaxPane(this,true));
addStepPane(new PagePurchasePrepayAccountPane(this,true));
addStepPane(new PagePurchaseInboundFreightAccountPane(this,true));但是我在批量new出子类之前,根据情况需要改变SetupPane的属性,比如说JTree的color。
如果不设置JTree是默认颜色,现在是需要设置特别颜色
想请教怎么再new出子类之前,根据修改父类SetupPane中tree的color,此处有多地方用所以不能写死
现有多个类继承它,使用的时候都分别new出来,想请教在new 子类的时候如果设置父类的属性,让所有子类都能受其影响。说的更具体点:
在抽象类SetupPane上有个JTree,需要批量new 出SetupPane的子类,例如
addStepPane(new PageWoReceiveDebitAccountPane(this,true));
addStepPane(new PageWoIssueWipDebitAccountPane(this,true));
addStepPane(new PagePurchaseReceiveDebitAccountPane(this,true));
addStepPane(new PagePurchaseTaxPane(this,true));
addStepPane(new PagePurchasePrepayAccountPane(this,true));
addStepPane(new PagePurchaseInboundFreightAccountPane(this,true));但是我在批量new出子类之前,根据情况需要改变SetupPane的属性,比如说JTree的color。
如果不设置JTree是默认颜色,现在是需要设置特别颜色
想请教怎么再new出子类之前,根据修改父类SetupPane中tree的color,此处有多地方用所以不能写死
什么叫改变父类的属性?
除了静态变量这种所有类的实例公用一个的变量外,
我还真想不到什么叫改变类(而不是对象)的属性如果楼主说的是改变父类的某个实例的属性之后,
想根据这个属性来生成新的对象
那这个应该在子类的构造方法中处理啊
把相应的属性,传给构造方法
然后跟具这个传入的参数来构造啊
子类自然继承的是源自类的信息,实例化后的父类状态不构成对类结构或属性的反馈,
也就是说无差别构造的子类,彼此也应无差别,因为它们的模板相同(类本身算是一种静态概念,修改对象无法修改类,修改父类对象也不会影响子类对象)例如楼主的要求在生成子类前改变父类属性,改变父类属性就要修改类吧?类在运行时怎么修改呢?(也许可以但肯定是不太适用的超常规方法),你可以构造时注入子对象信息或生成后改再变之
但是由于子类实在太多 过于麻烦 所以在试图找其他的解决办法
现在已经解决这个问题了 还是谢谢了
我现在解决的办法就是在构造时注入子对象的信息
谢谢两位朋友的帮助