你可以使用wrapper的方式将第三方的officewriter包装起来,即用一个interface定义这个包装类的所有方法和属性。例如:class myOfficeWriter extends OfficeWriter implements I_myOfficeWriter {
    ... 
    public String getString(){ 
       return strString; 
    } 
    ... //有若干的方法 }class I_myOfficeWriter {
    ....
    public String getString();
    public int getInt();
    ....
}那么,最终你使用的就是
public class ROAccDoc extends java.applet.Applet { 
    ... 
    I_myOfficeWriter officeWriter = new myOfficeWriter(); 
    public String getString(){ 
        String strA = officeWriter.getString(); 
    } } 

解决方案 »

  1.   

    上面的代码我没有测试,不过更为稳妥的办法就是用interface定义类似于officewriter的所有方法,然后用自己的类继承officewriter并实现这些接口方法。
    这样,在最终的ROAccDoc中就完全是用自己的方法和属性了:class I_myOfficeWriter {
        ....
        public String getMyString();
        public int getMyInt();
        ....
    }
    public class ROAccDoc extends java.applet.Applet { 
        ... 
        I_myOfficeWriter officeWriter = new myOfficeWriter(); 
        public String getString(){ 
            String strA = officeWriter.getMyString(); 
        } }
      

  2.   

    不明白了,就算java支持多继承,OfficeWriter是第三方提供的,你也没有办法增加功能啊!如果卖主更新了OfficeWriter,你的ROAccDoc里面的:
    OfficeWriter officeWriter = new OfficeWriter(); 这个调用就包含了更新的方法了,其实就是组件的思想嘛
      

  3.   

    java不用多重继承,但可以用extends 和implements
      

  4.   

    非常感谢gsyn77_csdn的认真回复 :)我提出需求的时候就是为了避免 OfficeWriter 一升级我的ROAccDoc也得跟着做维护的尴尬,所以想到假如ROAccDoc既继承了OfficeWriter,但又作为一个APPLET服务于WEB脚本的话,我只要不停的给他们OfficeWriter的JAR包,ROAccDoc用户(即写脚本的人)就可以通过ROAccDoc.class调用到OfficeWriter中的新接口/方法...基于以上需求才提出的问题
    回复问题的时候,我觉得大家都应该本着认真的态度来对待,因为我顶贴的陈述已经很明白的告知我知道“extents”和“implements”以及“利用接口”“JAVA不支持多重继承”这些东西,,,呵呵gsyn77_csdn启发了我,再此也谢谢各位了。