zoukankan      html  css  js  c++  java
  • 面向对象中的IS A和HAS A 问题

    “is a”代表的是类之间的继承关系,比如PC机是计算机,工作站也是计算机。PC机和工作站是两种不同类型的计算机,但都继承了计算机的共同特性。


    在C#开发时,应将pc与工作站设计成不同的类,然后继承于计算机这个类。

    再比如,苹果不水果中的一种,桃子也是水果中的一种,区别是它们属于不同的水果类别,但都继承了水果的共同特性,都有水果名称,重量,形状,色彩等。

    在实际开发中,需要把这两种不同的水果设计成不同的类,分别继承于水果这个类。苹果与桃子都是水果的一个具体实例,水果只是一个抽象类。


    “has a”代表的是对象和它的成员的从属关系。同一种类的对象,通过它们的属性的不同值来区别。比如一台PC机的操作系统是Windows,另一台PC机的操作系统是Linux。操作系统是PC机的一个成员变量,根据这一成员变量的不同值,可以区分不同的PC机对象。
    再比如张三和李四都是人,但他们的名字不一样,可以以此区分这两个具体的人。名字应该作为人的成员变量。如果将名字叫“张三”的人和名字叫“李四”的人分别定义成两个类,均继承“人”这个类,显然是不合理的。

  • 相关阅读:
    mysql在第一次查询的时候很慢,第二次查询就比较快的原因?
    mysql的递归(使用函数)
    什么样的男人才是女人眼中最帅的男人
    面试题总结
    java的重载总结
    arduino读取GPIO数据
    electron+react项目改为typescript
    百度AI训练营笔记
    python读取文件出现ufeff问题
    大端小端
  • 原文地址:https://www.cnblogs.com/Leung/p/1250033.html
Copyright © 2011-2022 走看看