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