一.继承关系(泛化关系)
1.描述
继承关系是子类(派生类)继承父类(基类)的属性方法,或者子接口继承父接口的关系。继承时类与类或者接口与接口之间最常见的关系。
2.代码:
class bird //bird父类
{
public void wing(); //公共方法
}
class owl :bird //子类继承父类
{
public void oxeye(); //子类继承父类的基础上扩展自己的方法
}
3.扩展:
一个子类继承一个父类,一个父类可以有多个子类继承; Java中通过extends标识;
二.实现关系
1.描述
指的是一个class类实现interface接口(可以是多个)的功能;实现是类与接口之间最常见的关系;
2.代码:
interface IFly{}
class Flylmpl : IFly()
{
public void fly(){
}
}
3.扩展:
一个类可以实现多个接口;
在Java中此类关系通过关键字implements明确标识;
C#中接口的成员不能有new、public、protected、internal、private等修饰符。
三.依赖关系
1.描述
类之间的使用关系,就是一个类A使用到了另一个类B,而这种使用关系是具有偶然性的、临时性的、非常弱的,但是B类的变化会影响到A。
2.体现
A依赖B,依赖关系代码表现形式:
1、B是A中方法的局部变量;
2、B是A中方法的返回值;
3、B是A中方法的参数。
3.代码:
class People
{
public void write()
{
Pen pen=new Pen();
pen.Write();
}
}
class Pen
{
public void Write(){}
public void Draw(){}
}
四.关联关系
1.描述
关联关系简单来说就是一个类A“知道”另一个类B的时候,则类A关联类B,类B作为类A的成员变量
2.代码:
//狗能够预知灾难来临
class Disaster {
private Dog dog; //Dog作为成员变量
}
【头脑风暴】:依赖关联的区别
依赖是一种弱关联,我写字用笔,我和笔就是一种依赖关系。我和同学是关联关系,老师和同学也是关联。
关联是类B作为类A的全局变量,依赖是局部变量,只有在A调用B的方法时才会有依赖关系
五.聚合关系-组合关系
1.描述
聚合是关联关系的一种特例,他体现的是整体与部分、拥有的关系,如果A对象可以包含B对象,但是B对象不一定要成为A对象的组成部分,那么A对象与B对象之间的关系为聚合关系,比如自行车有车轮,但是车轮并不一定要按在这辆自行车上,两者拆分后可以相互独立存在。
2.描述
如果A类对象包含B类对象,而且B类对象一定要是A类对象的组成部分,那么A类对象与B类对象之间的关系为组合关系
【头脑风暴】聚合组合区别:
聚合关系的类里含有另一个类作为参数;
组合关系的类里含有另一个类的实例化