类与类之间的关系2

1.关联关系
当一个类的对象作为另一个类的对象的成员时,那么这两个类之间就有了关联关系.
C#代码如下:  

///


/// 关联关系
///
public class 老公
{
    private 老婆 老婆;
}

public class 老婆
{
}

uml图如下:

 

2.关联关系中的多重性 
 是指类A的一个实例对应类B的实例的个数
C#代码如下:

///


/// 关联关系中的多重性
///
public class 狗
{
    private 腿[] 腿 = new 腿[4];  //这里值得商榷,狗与腿应该是组合的关系,因为狗没了,腿也没了,可以换成狗和多袋狗食 added              by  zhangjun at  2011-03-30
}

public class 腿
{
}

uml图如下:

关联关系中的多重性

 


3.关联关系中的方向性
在一个大公司里,公司的总裁只认识那些核心职员,不能认识所有的普通职员,而所有的职员都认识总裁.
C#代码如下

///


/// 关联关系中的方向性
///
public class 大公司总裁
{
    private 核心职员 核心职员;
}

public class 核心职员
{
    private 大公司总裁 大公司总裁;
}

public class 普通职员
{
    private 大公司总裁 大公司总裁;
}

uml图如下:

 关联关系中的方向性

4.聚合关系
是关联关系的特例,表示两个类的实例之间有整体与部分的关系,处于空心一端是整体,另一端为部分.聚合关系并不隐含整体消失而导致部分也消失.
如公司倒闭了,但做为职员的人还在,不会随之灭亡.
C#代码如下:

///


/// 聚合关系
///
public class 公司
{
    private 职员 职员;
}

public class 职员
{
}

uml图如下:

 聚合关系

5.组合关系
是聚合关系的一个特例,在聚合关系含义的基础上,增加了整体与部分之间"皮之不存,毛将焉附"的语义.实心的菱形表示整体,另一端表示部分.
C#代码如下:

///


/// 组合关系
///
public class 树
{
    private 树叶 树叶;
}

public class 树叶
{
}

uml图如下:

 

6.依赖关系
相对于关联关系, 依赖关系是一种比较弱的关系,被"依赖者"的变化有可能影响"依赖者".
C#代码如下:

///


/// 依赖关系
///
public class 人类
{
    private 粮食 粮食;
}

public class 粮食
{
}

uml图如下:

 

7.继承关系
类A是类B的一种,如下列代码小学生或大学生都是学生,在C#中用关键字abstract声明.
C#代码如下:

///


/// 继承关系
///
public abstract class 学生
{
    public abstract void 学习();
}

public class 小学生 : 学生
{
    public override void 学习()
    {
    }
}

public class 大学生 : 学生
{
    public override void 学习()
    {
    }
}

uml图如下:

 

8.实现关系
一方作为要求提出来,另一方具体完成这个要求.在C#中用关键字interface声明.如下列代码,去公园散步我可以步行或乘车去,都可以实现.
C#代码如下

///


/// 实现关系
///
public interface 去公园
{
    void 散步();
}

public class 步行 : 去公园
{
    public void 散步()
    {
    }
}

public class 乘车 : 去公园
{
    public void 散步()
    {
    }
}

uml图如下:

实现关系

原文地址:https://www.cnblogs.com/zhangjun1130/p/1731935.html