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

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


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

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

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


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

  • 相关阅读:
    FullCalendar日历插件说明文档
    Git忽略规则及.gitignore规则不生效的解决办法
    学习git config配置文件
    拼接最长回文串
    Gildong owns a bulgogi restaurant
    前m大的数
    求水洼(dfs)
    循环数组的最大子段和
    求叶子节点
    周期
  • 原文地址:https://www.cnblogs.com/Leung/p/1250033.html
Copyright © 2011-2022 走看看