Path: utzoo!attcan!uunet!husc6!think!bloom-beacon!gatech!purdue!i.cc.purdue.edu!j.cc.purdue.edu!pur-ee!uiucdcs!uiucdcsp!johnson From: johnson@uiucdcsp.cs.uiuc.edu Newsgroups: comp.lang.c++ Subject: Re: oo definition request Message-ID: <77300010@uiucdcsp> Date: 17 May 88 20:36:00 GMT References: <4800021@uiucdcsm> Lines: 8 Nf-ID: #R:uiucdcsm:4800021:uiucdcsp:77300010:000:431 Nf-From: uiucdcsp.cs.uiuc.edu!johnson May 17 15:36:00 1988 I consider the three key features of o-o programming to be data abstraction, late-bound procedure calls (messages) and inheritance. My definition of data abstraction is less strong than Wegner's since anything he calls an object I would probably consider a data abstraction, i.e. it is not necessary to avoid all direct references to the fields of an object. Instead, an object is something with a state and a set of operations.