Visual FoxPro 10.1.2子类与继承 既然“类”是OO方法中对现实世界进行模拟与抽象的一种工具,而现实世界中的 类是分层次的,有大类、中类、小类之分,如人类是地球上所有人的总属类,在 这个大的属类中,按肤色可进一步分为黄种人、白种人、黑种人等,不同肤色的 人除具有人类这样一些共同的特征外,还具有某个肤色的人种所独有的特征,在 对人类进行硏究时,如果不注意这些不同的特征,研究就难以深入。OOP方法中, 用“子类”来模拟现实世界中的类的层次问题。如果设计一个 “类” CLASS STUDENT来模拟华中大学全体学生组成的集合后,还可以以 CLASS STUDENT类为基础来设计 个 类” CLASS STUDENT COMPUTER来模拟华中大学计算机系的学生。从现实 生活中说,华中大学计算机系的学生应该具有其属类华中大学的学生的全部特征 和行为规则,同时还具有这个系的学生独有的东西,在OOP方法中正是完全模拟 了这一点,以 CLASS STUDENT类”为基础建立的“子 类” CLASS STUDENT COMPUTER会完全继承 CLASS STUDENT类”的全部 数据模式和“方法程序”,并且可以对这些数据模式和方法程序进行修改。这里 “类” STUDENT COMPUTER称为“类” CLASS COMPUTER的“子类”,而 CLASS COMPUTER称为 CLASS STUDENT COMPUTER父类”。在OOP方法 中,“子类”将继承其“父类”的全部特征和方法程序,当然,在“子类”中可 以对这些继承的特征和方法程序进行修改以对该“子类”进行更准确的模拟
Visual FoxPro 11 10.1.2 既然“类”是OOP方法中对现实世界进行模拟与抽象的一种工具,而现实世界中的 类是分层次的,有大类、中类、小类之分,如人类是地球上所有人的总属类,在 这个大的属类中,按肤色可进一步分为黄种人、白种人、黑种人等,不同肤色的 人除具有人类这样一些共同的特征外,还具有某个肤色的人种所独有的特征,在 对人类进行研究时,如果不注意这些不同的特征,研究就难以深入。OOP方法中, 用 “ 子 类 ” 来 模 拟 现 实 世 界 中 的 类 的 层 次 问 题 。 如 果 设 计 一 个 “类”CLASS_STUDENT来模拟华中大学全体学生组成的集合后,还可以以 CLASS_STUDENT 类 为 基 础 来 设 计 一 个 “ 子 类”CLASS_STUDENT_COMPUTER来模拟华中大学计算机系的学生。从现实 生活中说,华中大学计算机系的学生应该具有其属类华中大学的学生的全部特征 和行为规则,同时还具有这个系的学生独有的东西,在OOP方法中正是完全模拟 了这一点 , 以 CLASS_STUDENT“ 类 ” 为 基 础 建 立 的 “ 子 类”CLASS_STUDENT_COMPUTER会完全继承CLASS_STUDENT“类”的全部 数据模式和“方法程序” ,并且可以对这些数据模式和方法程序进行修改。这里, “类”STUDENT_COMPUTER称为“类”CLASS_COMPUTER的“子类” ,而 CLASS_COMPUTER称为CLASS_STUDENT_COMPUTER“父类”。在OOP方法 中, “子类”将继承其“父类”的全部特征和方法程序,当然,在“子类”中可 以对这些继承的特征和方法程序进行修改以对该“子类”进行更准确的模拟
Visual FoxPro 注意,在上面反复说“子类”继承其“父类”的全部特征模式 和方法程序而不说成拷贝其“父类”的特征和方法程序是因 为这样一个事实,当对“父类”进行修改后,这种修改会立 即反映到所有以该“父类”为基础而建立的全部“子类”中 不管这些“子类”是在“父类”修改前还是修改后建立的。 “子类”对“父类”的继承如此,以一个“类”为基础建立的 “对象”对所属“类”的继承也是如此 12
Visual FoxPro 12 注意,在上面反复说“子类”继承其“父类”的全部特征模式 和方法程序而不说成拷贝其“父类”的特征和方法程序是因 为这样一个事实,当对“父类”进行修改后,这种修改会立 即反映到所有以该“父类”为基础而建立的全部“子类”中, 不管这些“子类”是在“父类”修改前还是修改后建立的。 “子类”对“父类”的继承如此,以一个“类”为基础建立的 “对象”对所属“类”的继承也是如此
Visual FoxPro 如前所述,当建立了“父类” CLASS STUDENT和其“子 类” CLASS STUDENT COMPUTER后,如果要建立一个 “对象” Object Student来模拟计算机系的某个学生,可以用 两种不同的方法来实现: (1)以 CLASS STUDEN“类”为基础建立“对象” Object Student (2)以 CLASS STUDENT COMPUTER“类”为基础建立“对 象” Object Student 从前面的分析中读者很容易判断,第二种方法建立的对象 Object Student应该对计算机系的学生有更准确更完整的模拟 13
Visual FoxPro 13 如前所述,当建立了“父类”CLASS_STUDENT和其“子 类”CLASS_STUDENT_COMPUTER后,如果要建立一个 “对象”Object_Student来模拟计算机系的某个学生,可以用 (1)以CLASS_STUDEN“类”为基础建立“对象”Object_Student。 (2) 以CLASS_STUDENT_COMPUTER“ 类”为基础建立“对 象”Object_Student。 从前面的分析中读者很容易判断,第二种方法建立的对象 Object_Student应该对计算机系的学生有更准确更完整的模拟
Visual FoxPro 10.2 Visual Foxpro6.0对面向对象方法的支持 10.21 Visual foxpro60的类 如前所述,组成OOP程序的基本构件是“对象”,而对象是由 “类”派生的,因此,把一个待求解问题进行分析、归纳、 抽象,进而用“类”这种工具对问题模拟,并采用程序设计 语言来完成“类”的设计就是OOP方法的一项重要工作。为 方便从事应用开发的软件设计人员,一般支持OOP方法的计 算机语言都提供了丰富的基本类(称为基类)供用户直接使 用。开发人员可以根据这些基类而派生自己的子类以对具体 问题进行更准确的模拟,也可以直接根据基类而派生“对 象”。图10.1给出了 Visual foxpro60中为用户提供的基类。 在第11章会详细说明这些“基类”的作用和用法 14
Visual FoxPro 14 10.2.1 Visual FoxPro 6.0 如前所述,组成OOP程序的基本构件是“对象” ,而对象是由 “类”派生的,因此,把一个待求解问题进行分析、归纳、 抽象,进而用“类”这种工具对问题模拟,并采用程序设计 语言来完成“类”的设计就是OOP方法的一项重要工作。为 方便从事应用开发的软件设计人员,一般支持OOP方法的计 算机语言都提供了丰富的基本类(称为基类)供用户直接使 用。开发人员可以根据这些基类而派生自己的子类以对具体 问题进行更准确的模拟,也可以直接根据基类而派生“对 象” 。图10.1给出了Visual FoxPro 6.0中为用户提供的基类。 在第11章会详细说明这些“基类”的作用和用法。 10.2 Visual FoxPro 6.0 对面向对象方法的支持
Visual FoxPro 现代应用系统一般都采用微软公司推荐的 Windows界面,界面 上面是菜单栏,用户可以方便地选择所需要的功能;主窗口 是数据交互窗口,用来输入问题的状态信息,报告问题的处 理结果;而在主窗口下面或右侧一般是一组命令按钮,供用 户指示应用系统的操作步骤;为方便用户的数据录入,有时 还有一些单选按钮、复选框、微调按钮等等。在OOP方法中, 这些都被称为“对象”,而Ⅴ isual foxpro60为这些应用系 统常用的对象提供了相应的模板—“基类”,当应用系统 的开发者对于这些“基类”进行了足够的了解后,就能在自 己的开发工作中方便自如地使用它们,根据应用需求对它们 进行改造(这里的“改造”并不是修改Ⅴ isual foxpro60系统 中所带的这些“基类”,而是根据这些“基类”派生“子 类”,即进行“子类”的设计工作)后形成“子类”或直接 形成“对象”,可以极大地提高开发工作效率,增加系统的 可靠性。 15
Visual FoxPro 15 现代应用系统一般都采用微软公司推荐的Windows 界面,界面 上面是菜单栏,用户可以方便地选择所需要的功能;主窗口 是数据交互窗口,用来输入问题的状态信息,报告问题的处 理结果;而在主窗口下面或右侧一般是一组命令按钮,供用 户指示应用系统的操作步骤;为方便用户的数据录入,有时 还有一些单选按钮、复选框、微调按钮等等。在OOP方法中, 这些都被称为“对象” ,而 Visual FoxPro 6.0 为这些应用系 统常用的对象提供了相应的模板——“基类” ,当应用系统 的开发者对于这些“基类”进行了足够的了解后,就能在自 己的开发工作中方便自如地使用它们,根据应用需求对它们 进行改造(这里的“改造”并不是修改Visual FoxPro 6.0系统 中所带的这些“基类” ,而是根据这些“基类”派生“子 类” ,即进行“子类”的设计工作)后形成“子类”或直接 形成“对象” ,可以极大地提高开发工作效率,增加系统的 可靠性