From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: fac41,2c6139ce13be9980 X-Google-Attributes: gidfac41,public X-Google-Thread: f43e6,2c6139ce13be9980 X-Google-Attributes: gidf43e6,public X-Google-Thread: 103376,3d3f20d31be1c33a X-Google-Attributes: gid103376,public X-Google-Thread: 1108a1,2c6139ce13be9980 X-Google-Attributes: gid1108a1,public From: doylep@ecf.toronto.edu (Patrick Doyle) Subject: Re: Interface/Implementation (was Re: Design by Contract) Date: 1997/09/10 Message-ID: #1/1 X-Deja-AN: 271487815 Sender: news@ecf.toronto.edu (News Administrator) References: <34167245.0@news.uni-ulm.de> X-Nntp-Posting-Host: skule.ecf Organization: University of Toronto, Engineering Computing Facility Newsgroups: comp.object,comp.software-eng,comp.lang.ada,comp.lang.eiffel Date: 1997-09-10T00:00:00+00:00 List-Id: In article <34167245.0@news.uni-ulm.de>, Joerg Rodemann wrote: > >Patrick Doyle (doylep@ecf.toronto.edu) wrote: >> Ok. I'll go for that, because my argument all along has been that >> abstract superclasses can do as much as *and more than* Ada specs. >> So let's consider just the export aspects of an abstract class. Is >> there anything that they can't do which Ada specs can do? > >How do you prevent that the implemented class derived from an abstract >specification class can add public methods to those mentioned in that >abstract class? Close, but IMO no cigar. If we are faithfully to compare Ada and Eiffel ways of doing this, then just as an Ada package is accessed through its interface, so would the Eiffel class be accessed only through the abstract superclass. Thus, even if the subclass added public features, the client couldn't use them. Besides, it's hard to see how the ability to extend the interface would be a liability anyway. -PD -- -- Patrick Doyle doylep@ecf.utoronto.ca