继承建模 is-a/like-a。
组合建模 has-a

解决方案 »

  1.   

    通俗一点将继承就是使用extends,组合就是在一个类中把另一个类作为成员变量
      

  2.   

    要说二者的优缺点的话不大合适,因为两者不能相提并论
    虽然继承常被人提起,但是我们应该尽量避免使用它,而是用组合替代之
    用继承与否有一个界限:
    就是当你必须要使用向上转型时才需要用继承
    其中向上转型就是子类向父类的转型,例如:
    package pk;class Base {

    }public class Inhiretance extends Base {
    public static void getInh(Base base) {
    }
    public static void main(String[] args) {
    Inhiretance ih = new Inhiretance();
    getInh(ih);
    }
    }
    如果你觉得这种用法是不必要的,那你就应该考虑用组合了,因为那是一种更加简单,不容易出错的东西
      

  3.   

    继承就是父子类关系,需要用到extends关键字;
    组合就是在一个类将另一个类作为成员变量。
      

  4.   


    +1,而且感觉这俩东西根本不能相提并论,至少C++里也可以弄出组合这种东西,但貌似根本没有将这个概念特别提出来,甚至还弄个术语将其与继承相提并论的,不知道为啥java里非要弄个组合这个术语出来。
    我觉得继承是依据面向对象弄出来的,而且有编程语言的语法所支持,这组合就是种逻辑关系罢了,就算是C语言这种面向过程语言,仅靠结构体也能搞个组合了。