自己的水平还停留在"变量"的阶段,感觉这些概念都是一种"变量".
可惜程序这玩意儿是老外发明的,翻译教材的大牛又都有"西方思维方式",可苦了我这"老内"了,捧本书看n遍也记不住这些概念.求哪位给打个比喻,帮助理解一下.

解决方案 »

  1.   

    类:比如一个人,就是一个类
    对象:比如具体的某个人,就是一个对象
    接口:是为了规范,比如B类继承了A接口,B类就必需实现A接口中所有的方法.就是A接口有什么东西,B类中必需有.
    委托:比如今天有个快递,你没空签收,这时你就得委托别人去帮你签收.
    事件:就是控件本身封装好的,比如click
    泛型:List<int> 有一组int型的集合,看起来跟数组差不多,但是这个更高效,只是我们表面上看不出来.
      

  2.   

    在弱类型语言中,根本不需要interface这样的东西,因为消息随便发,都是运行时动态绑定,而csharp这类强类型语言为了解决这个问题才设计interface解决编译时调用的问题。
      

  3.   

    走在马路上,看到最多的就是汽车(类)。这时突然看到其中一辆(对象)闯了红灯(事件),那是一辆黄色的两厢POLO(属性)轿车,交警叔叔于是把他拦了下来并对其违法行为进行了教育和处罚(委托)。至于接口的概念,就是一种规范,其实生活中处处可见,例如电源插座,无论什么电气设备,只要其能够工作在220V电压下,并且插头设计成标准尺寸就可以在电源插座上使用了。电脑上的USB接口也是样的道理。泛型与接口有着异曲同工的作用,接口用于规范类型本身,而泛型侧重于规范类型的成员。例如很多城市设在路边的垃圾箱都分为可回收垃圾和不可回收垃圾两个桶,再例如某些停车场把停车区域划分为小车停车区、货车停车区、客车停车区等,在这两个例子中,垃圾桶和停车区就是两个基本类型,再结合所容纳物品的类型,就派生出五个不同的类型,但其实质是不变的,仅仅是对内容进行了规范。不知道有没有解释得清楚,希望对你有帮助。
      

  4.   

    谢谢谢谢!比喻生动形象,远超过我的预期了,好象清晰一些了,等我回头看看书,再理解理解.
    我自己再说说,大家纠正一下:
    "类"是一个描述,定义了一类事物,比如"多边形"---3个以上的直线组成的闭合形状;"对象"是一个具体的事物,比如"4边形";("对象是类的一个实例",那 "对象" 就是 "实例"吗?)"委托"没理解,我怎么感觉和"事件"差不多?比如按钮,当我click时,就发生某些动作.或者pageload时,发生某某动作."接口",是不是象RS232 \ PCI插槽 \usb\等,都是硬件的"接口",规定了拿根线是传什么数据的,数据是什么格式的等,程序中,接口就是规定我们传递的变量是干什么用的.
      

  5.   

        我在学习类的概念的时候老师也是举的也是人。在理解类的概念最好和类的属性一起理解,这就好比人。把人看做1个类(也就是人类),而人又有不同。(中国人、美国人、法国人)对了,只要是人都有共有的特点也就是属性(名字,生日等等),可这些不能单独存在,因为这样单拿出来没有什么意义,所以必须属性要在1个容器之中 class Preson{ string name{set;get;};} 但我想给这些熟悉填上其的特点,这就要用对象的概念 Person p = new Person() p一般会被说成对象,但它更应该说成1个实例。这里实例和对象要分开,不是1个东西。这里我不多讲,因为我说不明白。但是 p你就认为是你要调用Person中的方法和属性的桥梁。
        
      

  6.   

       继承最好和修饰符一起理解,你家里的汽车,你可以起开。因为是你从爸爸继承下来的(public) 你爸爸有多少钱,你不能知道,因为那是男人的秘密(private) 但是 你如果被授权拿钱了就另说了 
    public money{get;set;}; 这个例子不好,你就将就着点吧。
      

  7.   


    这是典型地错误观点。OO编程的继承,跟财产继承是两回事。仅凭字眼一样,是错误的。从OO概念上,财产继承根本跟继承扯不上半点关系。所谓继承,就好象“白马也是马、张柏芝是女人也是演员、女人也有前列腺”一样的概念,而不是什么“你从你爸爸那里继承汽车”这种概念!
      

  8.   

    最简单的理解就是说继承描述了一种“IS-A”式的关系,而不是“HAS-A”的关系。如果说一个人跟他父亲是继承关系,那么就等于说“一个人他是他自己的父亲”一样是错误的。那种胡乱使用“继承”这个词儿的人,会制造很多诡异的设计问题出来。所以面向对象设计的第一个简单原则就是要保证子类对象可以替换测试原先针对父类对象的测试用例,就好象“马可以骑,所以白马可以骑”、“病人需要医生诊断,所以住院部病人需要医生诊断,并且门诊部病人也需要医生诊断”。如果滥用“继承”甚至把父子财产问题也“比喻”成是OO上的继承,就等于说你说“父亲可以跟母亲生下我,所以我可以跟母亲生下我自己”。这就是错误的。
      

  9.   


    因为“弱”,所以混乱。面向对象系统分析设计是一种设计语言,它要求在类型封装、继承和多态方面要“强”起来,而不是仅仅停留在“弱”上面。类似javascript那样的语言充其量算是个“基于对象”的语言,而达不到“面向对象语言”的高度。因为它太弱了,可以随便混淆设计的实现方式。