我现在用一个开发包,里面有个类 A,我是要继承的。
同时,我也想对着这个类一些变化进行观察,也就是要用到观察模式,想用JAVA提供的类 Observable ,和接口 Observer。我现在相对这两个进行继承,怎么办呢?难道要继承好几次么? 也就是先继承我要的开发包的类 A,生成 B,再让B 继承 Observer, 生成 C。 让后我自己的类 再去继承 C,生成 D。 这么多工序么?

解决方案 »

  1.   

    Java中只有单继承  没有多继承   以前看到有类似的帖子   但是用了很多很多方法最后发现还是所有的方法都不能真正的实现多继承   只是形式上想多继承而已
      

  2.   

    我咋觉得按你这个描述也无法实现啊
    B是继承了A的,
    你怎么通过B生成C?
    继承?
    那C要继承B了,又怎么继承Observer?
      

  3.   

    你可知继承你的类A,实现接口 Observer就ok了
      

  4.   

    接口……实现2个接口,关键字implements./*
     * 接口1
     */
    interface Add {    public int add(int a, int b);
    }/**
     * 接口2
     */
    interface Sub {    public int sub(int a, int b);
    }/**
     *类实现2个接口
     */
    public class Class implements Add, Sub {    public int add(int a, int b) {
            return a + b;
        }    public int sub(int a, int b) {
            return a - b;
        }
    }
      

  5.   

    因为java中是不可以多重继承的。对于你的情况,我建议你还是  自己实现观察者模式  吧,观察者模式比较简单,不需用API提供的。API为了让程序员能够方便的使用观察者模式,将Observable涉及成了抽象类,你重写的时候将其写为接口就可以了,实现观察者模式的几个方法时,参照java中Observable的源代码即可。如果不是太清楚,你只要稍微看一下观察者模式的资料,就可以的。
      

  6.   

    public class YourClass extends A implements Observable {
    }
      

  7.   

    首先,我建议楼主在写程序时候,多考虑点接口,少用继承,(除非一定需要继承);
    下面看看楼主的问题:A是你的一个包中的一个类,作为父类,他下面有子类,可以考虑,类A继承Observable,然后类B在去继承类A 这样,B就有A的Observable的行为和属性了,然后你的类继承B这样你的类就有三个类的行为和属性了,如果只需要A和Obseervable的东西只需要继承A就行了。
    哦 对了 楼主 Observer 不能被继承 只能被实现,改过来吧!
      

  8.   

    把你要写的那个几个中要的父类都写成接口吧   要不  就得一个继承一个的继承下去  谁让java是单继承呢
      

  9.   

    java 不支持多继承,你只能通过实现多个接口的方式,变相实现多继承
      

  10.   

    Java单继承的,可以试着用接口~~~
      

  11.   

    要使用JAVA就不要去专牛角尖、、、、、那样没有意思的。
      做到的事怎么做好就行了
      

  12.   

    java只能单继承,或者直接用接口!
      

  13.   

    要不就继承层次多几层,a继承b,b继承c,a就相当于继承了b和c,要么就用接口
      

  14.   

    java中实现多继承只能通过接口,或者通过内部类变相实现多继承。
      

  15.   

    java只有单继承,只能通过接口来完成你的想法