继承、实现、依赖、关联、聚合、组合


继承、实现、依赖、关联、聚合、组合_第1张图片
891477-20160712141635592-555452425.png

继承/泛化:

泛化关系是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为。例如:老虎是动物的一种,即有老虎的特性也有动物的共性。继承是类与类或者接口与接口之间最常见的关系;在Java中此类关系通过关键字extends明确标识,在设计时一般没有争议性。
父类 父类实例=new 子类();

class Animal{}   
class Tiger extends Animal{}   
public class Test   
{   
    public void test()   
     {   
         Animal a=new Tiger();   
     }   
}  
继承、实现、依赖、关联、聚合、组合_第2张图片
891477-20160712141630357-2101937284.png

实现:
继承、实现、依赖、关联、聚合、组合_第3张图片
891477-20160712141631623-75759233.png

依赖:

一个类A使用到了另一个类B,而这种使用关系是具有偶然性的、临时性的、非常弱的,但是B类的变化会影响到A;比如某个老师要授课,则需要有这么一门课让他教授,此时老师与课之间的关系就是依赖

class Car{};
class House{};
class Person
{
void buy(Car& car){}
void buy(House* pHouse){}
};
继承、实现、依赖、关联、聚合、组合_第4张图片
891477-20160712141632420-1340918638.png

关联:

是类与类之间的联接,它使一个类知道另一个类的属性和方法。两个类或者类与接口之间语义级别的一种强依赖关系,这种关系比依赖更强,一般是长期性的,而且双方的关系一般是平等的。比如:老师与学生,丈夫与妻子关联可以是双向的,也可以是单向的。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。

class Person{};
class Friend
{
Person* mpPerson;
};
继承、实现、依赖、关联、聚合、组合_第5张图片
891477-20160712141633326-830905290.png

聚合:
继承、实现、依赖、关联、聚合、组合_第6张图片
891477-20160712141634514-1487314047.png

组合:
继承、实现、依赖、关联、聚合、组合_第7张图片
891477-20160712141634967-1367926050.png

聚合与组合:

聚合:
部分可以离开整体单独存在。聚合属于关联中的一中,是强关联关系。

class CPU{};
class Memory{};
class Computer
{
CPU* mpCPU;
Memory* mpMemory;
};

组合:
部分不能离开整体单独存在。是比聚合还强的关系。它要求整体对象负责其中部分对象的生命周期

class Leg{};
class Arm{};
class Person
{
Leg mLeg;
Arm mArm;
};

你可能感兴趣的:(继承、实现、依赖、关联、聚合、组合)