PrintForm是票据设计用的BaseForm,继承与Form
画票据的人,再继承这个PrintForm,比如 PrintForm1有以下几个问题想请教:
1 我想在printForm里面加一些限制,并且子form不允许修改这些限制。
比如说不显示标题栏等,应该如何实现?2 我要写两三个方法的定义,画票据的人要完成这些方法的实现,
可是只有抽象类,才能强制子类实现方法,或者用接口,但是
已经做了一个基Form了,基Form因为有些其他的要定义的,所以不能定义成抽象Form,
再做一个接口的话,
画票据的人,就必须既要继承基类,又要继承接口,有点麻烦,
有没有,只继承不是抽象的基类,又强制让子类实现该基类定义的方法?
不实现就编译报错。3 假设,已获得一张票据的设计Form,但是不知道这个form的具体类名
我可以通过 
PrintForm form = printForm1; // 这里是PrintForm的子Form
来调用该子Form的方法,和实现对该form的控制。
但是因为这个票据Form是个模板,我想复制多个Form实例,以实现
分页的效果,这里在我不知道具体是什么Form的时候,
怎么能动态的生成这个子Form的对象。
因为是新手,所有问题有点多,请各位高手帮助。

解决方案 »

  1.   

    1, pravite化覆盖父类的属性或方法2,必须先强制你的类不能被实例化。3,创建一个模板对象
      

  2.   

    感谢楼上的回复,本人面向对象的设计的经验还不是很足,
    正在学习中,就是想实现票据打印的功能,用Form来画票据,画票据的人员,要实现
    一个方法,把传入的数据,分别套入票据Form中的控件中,作为一个票据的基本Form,想把所有票据共通的部分,都在这个Form里面定义好
    所以,这个基本的票据基类 PrintForm,一定要要,但是,又想强制
    画票据的人,不能忘记,去做上一部,把数据放入对应控件中。(所提问题2的产生)所以产生了以上问题1
     我在基类PrintForm中,尝试写死pravite一些属性,比如Form的标题栏,背景色,大小
    可是,继承这个基类的票据Form,感觉完全不受控制,还是显示标题栏,默认背景色,大小也可以调整
    基类中的设置,完全不起作用。问题3,实在打印时候,每页都打印成一样的内容了,可能是同一个对象,所以不知道怎么生成更多的新的
    form对象,以避免每页都一样,(估计是指针的原因)
      

  3.   

    1,PrintForm的中不想要子类修改的东西定义为私有的
    2,可以单独写一个接口,让PrintForm的子类继承这个接口,可以多重继承的嘛
    3,这个没看懂
      

  4.   


    你可以设计2个类,一个类A是对外给其他人继承用的。另一个类B继承自Form,但设计成A的内部类。这样A就可以只暴露需要的接口,又可使用所有Form的成员。并且其他人无法访问到Form的任何东西
      

  5.   

    问题3,实在打印时候,每页都打印成一样的内容了,可能是同一个对象,所以不知道怎么生成更多的新的
    form对象,以避免每页都一样,(估计是指针的原因)
    你的其他对象用模板对象时需要深拷贝。