面向对象关系

横向 (取决于语义)

依赖

  • 双方的地位往往是独立平等的(地位)
  • 是偶尔的,临时性的,不频繁的
  • 代码层面的表现形式而言,往往是局部变量
  • 类B以参数的形式传入类A的方法中
  • 类A调用类B的静态方法

关联

  • 双方的地位往往是独立的,平等的(地位)
  • 是长期的,稳定的,频繁的(依赖程度)
  • 代码层面的表现形式而言,关联往往以全局属性的形式

聚合

  • 双方的地位是不平等的,是整体和部分之间的关系(地位)
  • 是长期的,稳定的,频繁的,这种关系比关联更强,以至于在形式上出现了部分和整体的关系。整体和部分都有自己的生命周期,一方的消失另一方不会跟着消失(依赖程度)
  • 代码层面的形式而言可参考关联

组合

  • 双方的地位是平等的,是整体与部分之间的关系(地位)
  • 比聚合更强,部分的生命周期取决于整体,部分随着整体的消失二消失(依赖程度)
  • 代码层面的表现形式而言的参考关联
  • 区分是聚合还是组合的核心点事生命周期

纵向 (取决于结构)

继承 extends

  • 父子关系:子类可以继承父类一切并将它发扬光大
    1 可以继承父类的属性,父类的属性如果是私有的,则不可被继承
    必须是公有的,或是受保护的,才可以被继承,一般不常用。
    2 可以继承父类的方法,父类的方法不会太具体,具体的方法写在子类,由于没有主方法,需要一个测试类来支持它们运行。

实现 implements

  • 类对接口的实现

你可能感兴趣的:(面向对象关系)