目录
简介
面向对象程序设计中,要实现复杂的模块化系统,需要将系统划分为多个对象并组织它们之间的关系,这就涉及到常说的面向对象五大依赖关系。这五种依赖关系分别是:继承、聚合、组合、关联和依赖。本文将逐一介绍这五种依赖关系。
继承关系
继承是一种基于类的依赖关系,允许一个类从一个或多个基类继承属性和方法。继承关系建立在共性和特性之间,通常使用 is-a 关系来描述,即子类 is a 父类的一种特殊形式。
通过继承,一个子类可以拥有父类的所有属性和方法,并能够扩展和修改这些属性和方法。通过继承,我们可以避免代码冗余,减少代码复制和粘贴,并提高代码重用性。
在继承关系中,应该遵循以下原则:
- 子类扩展或重写基类的属性和方法;
- 子类不能直接修改基类的实现方式;
- 子类应该尽量简化和区分基类的属性和方法。
internal abstract class Animal
{
public Animal()
{
}
protected string Name { get; set; }
public abstract void Call();
}
/// <summary>
/// 继承Animal
/// </summary>
internal class Cat : Animal
{
public Cat()
{
//使用继承Animal的Name属性
Name = "金毛";
}
//重写Animal的Call方法
public override void Call()
{
Console.WriteLine($"{Name}在喵喵叫");
}
}
/// <summary>
/// 继承Animal
/// </summary>
internal class Dog : Animal
{
public Dog()
{
//使用继承Animal的Name属性
Name = "金毛";
}
//重写Animal的Call方法
public override void Call()
{
Console.WriteLine($"{Name}在汪汪叫");
}
}
聚合关系
聚合关系是一种整体与部分的关系,即整体可以由部分构成,部分可以独立存在,且整体与部分是 “has-a”