继承父类的话,子类就拥有了父类的所有内容但是如果一个类B和A很像,但是有些A中的东西不需要,那么它可以继承A,然后去掉A中的一些内容吗或者用其它方法来方便地得到A中的大部分内容,不一定是继承关系

解决方案 »

  1.   

    你用组合的方式 A中包含一个B对象就可以了。不是非要用继承的 或者把A,B公共的部分抽取出来C。让AB从C类继承
      

  2.   

    组合关系.在这个对象里面 new  一个A 
      

  3.   

    把A,B公共的部分抽取出来C。让AB从C类继承
      

  4.   

    如果是要在已经定好的类基础之上呢,比如说是String,假设它可以继承现在我想要一个和它差不多的类,有它的基本功能,但是又有一些不想要,应该怎么办是不是一定要什么都自己写,和实现String的过程基本一样,然后去掉我不要的东西?那么不是很浪费??
      

  5.   


    假设类A有两个方法public void f()和public void g(),其中g()是多余的,并且不希望被用户使用。你可以通过以下两种方法做到:方法一:扩展A类,重写所有不需要的方法,在其中抛出异常。
    class B extends A {
        public void g() {
            throw new UnsupportedOperationException();
        }
    }方法二:使用代理方法。
    class B {    private A a = new A();    public void f() {
            a.f();
        }
    }
      

  6.   

    唉……楼主呀……不推荐使用这个方法:
    方法一:扩展A类,重写所有不需要的方法,在其中抛出异常。 
    class B extends A { 
        public void g() { 
            throw new UnsupportedOperationException(); 
        } 

    这叫“限制子类化”。是违反里氏替换原则的,应尽量避免使用!最好的做法还是:
    把A,B公共的部分抽取出来C。让AB从C类继承只有不能这样做时,才
    方法二:使用代理方法。 
    class B {     private A a = new A();     public void f() { 
            a.f(); 
        } 
    }