用面向对象模型描述大学人员数据库如图2-20所示。学校的成员包括学生和工作人员,不管他们在学校中的作用,他们都具有学校中人的特性,如姓名、年龄、性别、地址等,同时还有适合于他们本身的特殊的特性。一个本科生除具有符合大学生的特性,还有只适合于本科生的特殊的特性。研究生也是如此。
  下面是学校成员的类层次定义。由定义中可以看到,人与学生和教员、以及学生与本科生和研究生之间的关系就是超类与子类的关系。本科生除了具有大学生的特性以外,不包含自己特殊的特性,但每个本科生的状态约束值必须是本科生"undergrad"。而研究生不是学生对象的简单子集,因为研究生除了学生的特性外,还有他们自己的独有的特性,如导师等。本科生类和研究生类组成的对象是学生类对象集合的子集。人、教师、学生、本科生和研究生的描述如下。

  图2-24 大学成员层次结构
CLASS person(人);
  name: string;
  sex: [M,F];
  age: integer;
  address: string;
  spouse: person;
ENDCLASS
 CLASS teacher(教员);
  IS_A person;
  status: string;
  salary: real;
 CONSTRAINT
  status='teacher';
 ENDCLASS
 CLASS student(学生);
   IS_A person;
   status: string;
   degree:integer;
   record:[grade:integer,course:string];
  CONSTAINT
   status='undergrad','postgrad' ;
  METHOD
   averge-grade(record, student);
 ENDCLASS
 CLASS undergrad(本科生);
   IS_A student ;
 CONSTAINT
   status='undergrad';
 ENDCLASS
   CLASS postgrad(研究生);
   IS_A student;
   divisor: teacher;
 CONSTAINT
   status='postgrad';
ENDCLASS