有一个父类为超类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,此处有多地方用所以不能写死

解决方案 »

  1.   

    用静态变量不行    
      

  2.   

    父类和子类是一种继承与被继承的关系
    什么叫改变父类的属性?
    除了静态变量这种所有类的实例公用一个的变量外,
    我还真想不到什么叫改变类(而不是对象)的属性如果楼主说的是改变父类的某个实例的属性之后,
    想根据这个属性来生成新的对象
    那这个应该在子类的构造方法中处理啊
    把相应的属性,传给构造方法
    然后跟具这个传入的参数来构造啊
      

  3.   

    我理解
    子类自然继承的是源自类的信息,实例化后的父类状态不构成对类结构或属性的反馈,
    也就是说无差别构造的子类,彼此也应无差别,因为它们的模板相同(类本身算是一种静态概念,修改对象无法修改类,修改父类对象也不会影响子类对象)例如楼主的要求在生成子类前改变父类属性,改变父类属性就要修改类吧?类在运行时怎么修改呢?(也许可以但肯定是不太适用的超常规方法),你可以构造时注入子对象信息或生成后改再变之
      

  4.   

    首先帮助,我一开始就是想着通过子类的构造方法来传给父类参数
    但是由于子类实在太多  过于麻烦  所以在试图找其他的解决办法
    现在已经解决这个问题了   还是谢谢了
      

  5.   

    可能我一开始表述的有问题,谢谢大家指点,今天学习了   
    我现在解决的办法就是在构造时注入子对象的信息
    谢谢两位朋友的帮助