用自然语言来描述继承中的关系就是 人继承生物 男人继承人 你继承男人 人具备所有生物应该有的特征 男生具备所有人应该有的特征 你具备男人所有应该有的特征
C#中的继承就是为了描述现实世界的具体包容 关系!你可以很简单的把继承认识为一种针对于面向过程语言的简化性,包括操作的简化,代码的简化,便于理解!
比如说,在C中你需要描述一个人的信息,就要
结构 人
{
五官
四肢
}
结构 男人
{
五官
四肢
胡须
}
结构 女人
{
五官
四肢
胸部
}
这样的代码你看到问题没有。。。就是每一种定义里边都具备五官和四肢。。。面向过程里边没有继承的概念,所以你要做出很多重复性的工作,如果让你开发一个商业应用系统,那么会有很多的实体存在,你每种实体都定义一遍,代码会很臃肿,而已不便理解,难以维护!假如某一天突然想要在人的结构中加多一个躯干的属性,那么你要把所有与人有关的结构实体都加上一个躯干,会让程序员发疯的!
而面向对象的三个特性就是为了解决上述问题,比如说继承,用 C#描述刚才的结构
class 人
{
public string 五官{get;set;}
public string 四肢{get;set;}
}
class 男人:人
{
public string 喉结{get;set;}
}
class 女人:人
{
public string 胸部{get;set;}
}
这样的结构,当你 要定义一个男人的实例的时候 男人 爷们=new 男人();
爷们这个实例下边会有三个公共属性,即 五官 四肢 喉结!女人的话就是五官 四肢 胸部!
面向对象为面向过程提供了一种编码上的补充,让程序员可以节省很多力气,并且根据这些特征来改善我们的应用,使得开发更加的流畅!能够拥有更多良好的设计和算法!这个就是面向对象的目的。。。。
利用面向对象来改善上边的修改操作,倘若加入一个躯干的属性,那么只要加在人的那个基类里就可以了,男人女人两个类完全不用改动