Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!mailrus!iuvax!ux1.cso.uiuc.edu!uxc.cso.uiuc.edu!uxc.cso.uiuc.edu!m.cs.uiuc.edu!p.cs.uiuc.edu!johnson
From: johnson@p.cs.uiuc.edu
Newsgroups: comp.lang.c++
Subject: Re: OO terminology (Was: OO Design
Message-ID: <77300034@p.cs.uiuc.edu>
Date: 23 Sep 89 20:38:00 GMT
References: <185448@<1989Sep21>
Lines: 21
Nf-ID: #R:<1989Sep21:185448:p.cs.uiuc.edu:77300034:000:916
Nf-From: p.cs.uiuc.edu!johnson    Sep 23 15:38:00 1989


> Written  1:54 pm  Sep 21, 1989 by dan@oresoft.uu.net 

>'super-' and 'sub-' class terminology can introduce confusion.
>If X is a a base class of Y, then a Y is an X but not vice-versa,
>and so X is the more general of the two.  On the other hand,
>Y is a superset of X; every Y has an X in it, so you could say
>that X is a subclass of Y.

Y is NOT a superset of X.  For Y to be a superset of X, it would have
to be the case that every X would be a Y, and you just said that was
not true.  The fact that C++ implements each Y by using X as a
component certainly does not make Y be a superset of X.  Suppose
that Y had a member that was an object of class Z.  Would that make
Y a superset of Z?

The several dozen C++ programmers around here all say "superclass"
and "subclass" instead of "base class" and "derived class".

here = Department of Computer Science, 
       University of Illinois at Urbana-Champaign