浅谈类间关系

zspsys 2008-05-24 07:20:47
本人对类间关系不是很了解,希望各位根据自己的理解说说~~
...全文
380 33 打赏 收藏 转发到动态 举报
写回复
用AI写文章
33 条回复
切换为时间正序
请发表友善的回复…
发表回复
Caoxp_papa 2008-06-03
  • 打赏
  • 举报
回复
继承(特殊和普通关系)
组合(整体和部分关系)
利用(使用和被使用关系)
fuadam 2008-06-02
  • 打赏
  • 举报
回复
就知道继承和组合,你说的聚合是什么
zspsys 2008-06-01
  • 打赏
  • 举报
回复
不知道各位对哪种关系理解的更好些,我本人只对聚合和组合有所了解,其他的不是很清楚,请指教!
我姓区不姓区 2008-06-01
  • 打赏
  • 举报
回复
楼主不要忘了结贴给分哈~~~
cch1010 2008-06-01
  • 打赏
  • 举报
回复
学习!
tglflzqlmy 2008-06-01
  • 打赏
  • 举报
回复
说的明确点,就是一个箱子,一个对象~~
fuadam 2008-06-01
  • 打赏
  • 举报
回复
现在c#3.0对函数式编程也支持了,所以开发的时候不一定死抱着面向对象不放。要结合具体情况
hackztx 2008-05-31
  • 打赏
  • 举报
回复
[Quote=引用楼主 zspsys 的帖子:]
本人对类间关系不是很了解,希望各位根据自己的理解说说~~
[/Quote]

本人对LZ提问不是很了解,,希望各位根据自己的理解说说~~
mbh0210 2008-05-31
  • 打赏
  • 举报
回复
这个题目太广了,类一般就是定义一些属性、方法等等,为了代码的可读性、重用性。加入了面向对象的东东,可以继承、封装、多态。其实都是一些规则而已,可以完全不用面向对象的东东,只不过就像道德规范一样。
S170393163 2008-05-30
  • 打赏
  • 举报
回复
做编程时间长了以后,才发现,理论知识忘的差不多了,回过头看..

才知道什么叫深入浅出..
zspsys 2008-05-29
  • 打赏
  • 举报
回复
呵呵 高端技术固然重要,但基础更重要,这往往是人们容易忽略的!
SSXYC 2008-05-28
  • 打赏
  • 举报
回复
楼主对理论感兴趣呵呵
zspsys 2008-05-28
  • 打赏
  • 举报
回复
我想要的是根据各位自己的理解说出来的,不是复制原版的,谢谢各位!
yagebu1983 2008-05-28
  • 打赏
  • 举报
回复
学习了!!
感谢楼主!!
baihe_591 2008-05-28
  • 打赏
  • 举报
回复
14楼已经很详细了.
net0003 2008-05-28
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 amandag 的回复:]
http://blog.csdn.net/baobeisimple/archive/2007/06/12/1648617.aspx

说的蛮详细了
[/Quote]
EastboyTop 2008-05-28
  • 打赏
  • 举报
回复
顶!
我姓区不姓区 2008-05-26
  • 打赏
  • 举报
回复
那我来简单说说吧,有不对的请别见笑:
类与类之间结构关系的正式名称是“关联(association)”。如
学生选课

class Student
{
public string Class;
public Teacher teache;
public Degree DegreeToReceive;
public void Register(Course c)//关联
{ }
}

class Course
{
private string name;
public Course(string name)
{
this.name=name;
}
}

教授讲课
获得学位需要选修某门课程
关联是指类间关系,术语“链接(link)”则是指两个特定对象(实体)间的结构关系。对于“学生选课”,可以有以下链接
A(一个Student对象)选修数学(一个Course对象)
B(一个Student对象)选修英语(一个Course对象)
C(一个Student对象)选修英语(一个Course对象,对象B也链接到同一对象)

Student A=new Student();
A.Register(new Course("Math"));//链接

可以从另一方面考虑关联与链接的不同
关联是某个类/类型的对象间可能存在的关系;
链接是这些特定类型的对象间实际存在的关系。

聚合(aggregation)是一种特殊形式的关联,它指明“包括”、“由……构成”或“有……”的关系。如一辆汽车包括一个引擎,包括一个传动设备,有4个轮子等。

class Vehicle
{
//聚合
private Engine engine;
private GearBox gearbox;
private Wheel wheel;
}
class Engine
{

}
class GearBox
{ }
class Wheel
{ }


继承(inheritance)通过指出新旧类之间的不同之处,在旧类基础上定义一个新类。继承通常指出两个类之间是"A是B"的关系,如果B派生自A,则B是A的一种特例。基类具有的特点对于其所有派生类都适用。实际上判断继承关系的一种方法是:如果A中有一些特点不适用于B,则B不应是A的派生类。例如:研究生派生自大学生,大学生在一个班级里面,研究生也在一个班级里面;大学生有指导教师,研究生也有指导教师;大学生研读学位,研究生也研读学位。研究生已经从某教育机构毕业,而大学生则不一定;研究生已获得本科学位,大学生则不一定。

class GraduateStudent : Student//继承
{
public Degree DegreeReceived;
public University GraduatedFrom;
}

zspsys 2008-05-26
  • 打赏
  • 举报
回复
感谢各位,就是要14楼那样的!
gs0038 2008-05-25
  • 打赏
  • 举报
回复
什么问题?
加载更多回复(12)

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧