现在有类A,类B,接口C, 抽象类 E 其中A extends B implements C 由于程序需要 ,需要让A extends E,但现在在类B和接口C,抽象类E 都已经无没变更改,无法在扩展为了达到这种效果,我在A类中创建一个内部类D,让D extends E,(相当于多继承),然后在D中访问A的方法、具体实现,在由A来构造D的实例,来调用D的方法这样设计有没有什么不妥,有什么坏处?

解决方案 »

  1.   

    实际上很多复杂类就是这么做的。
    在awt中就很多。
      

  2.   

    不妥就是这个类A过于复杂了,最好将抽象类E变为接口,A implements C,E
    不过你说E已经无法更改成接口了,那么只能做一些补救措施了,即将内部类声明为static
    这样在A中就不用先构造D的实例来访问D的方法了
      

  3.   

    to duo_clb :
    请教依你的意见这个应该如何设计呢?magic256:内部类声明为static 这样在A中就不用先构造D的实例来访问D的方法了,如果这样,这个静态内部类就不能访问外部数据了,我也想过,呵呵,不过还是谢谢你!