Path: csiph.com!usenet.pasdenom.info!gegeweb.org!de-l.enfer-du-nord.net!feeder2.enfer-du-nord.net!border1.nntp.ams2.giganews.com!border2.nntp.ams2.giganews.com!border4.nntp.ams.giganews.com!Xl.tags.giganews.com!border2.nntp.ams.giganews.com!nntp.giganews.com!local2.nntp.ams.giganews.com!nntp.bt.com!news.bt.com.POSTED!not-for-mail NNTP-Posting-Date: Wed, 27 Feb 2013 06:24:15 -0600 Date: Wed, 27 Feb 2013 12:24:13 +0000 From: lipska the kat <"nospam at neversurrender dot co dot uk"> Organization: Trollbusters 3 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:11.0) Gecko/20120410 Thunderbird/11.0.1 MIME-Version: 1.0 Newsgroups: comp.lang.java.programmer Subject: Re: BlueJ don't know what i did wrong References: <638ed624-9eba-44eb-bcbf-68466e5bb5f1@googlegroups.com> <42d76fca-d365-4030-ae8c-07a806eab87c@googlegroups.com> <1wtai7dd80h80$.6rbtwoyou3gh.dlg@40tude.net> <5q6dnc3pF_HJzLfMnZ2dnUVZ7s-dnZ2d@bt.com> <77afaabf-ec0f-46d6-b3ea-d8f186dbf7e4@googlegroups.com> <512c2745$0$289$14726298@news.sunsite.dk> <3a2dnXBuTbOY4rHMnZ2dnUVZ8iWdnZ2d@bt.com> <0I%Ws.96474$Ln.24770@newsfe22.iad> <672dncokKZ13AbHMnZ2dnUVZ8oadnZ2d@bt.com> In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Message-ID: Lines: 76 X-Usenet-Provider: http://www.giganews.com X-AuthenticatedUsername: NoAuthUser X-Trace: sv3-MWbuGkTMwrnatinVtF35NCSM7nW1B4FWepQsx6mOmCuchLtq5lm0rFs01C3Fxf4TyPNCGc18WPJTo7+!YxmMVgEkNlX+R/D0iIiae7oYOgm7nksQO3Fhug/uQU8mRsJ52prRV3LSLg80tJZ0MAx6eFNujFA= X-Complaints-To: abuse@btinternet.com X-DMCA-Complaints-To: abuse@btinternet.com X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly X-Postfilter: 1.3.40 X-Original-Bytes: 4311 Xref: csiph.com comp.lang.java.programmer:22574 On 27/02/13 10:45, Arved Sandstrom wrote: > On 02/26/2013 07:30 AM, lipska the kat wrote: >> On 26/02/13 09:59, Arved Sandstrom wrote: >>> On 02/26/2013 05:23 AM, lipska the kat wrote: >>> [ SNIP ] >>> >>>> What's the contract of Deque ... a double ended queue? >>>> That in itself breaks the (humanly acceptable) contract of Queue. >>>> If a Queue is double ended it's not (conceptually) a Queue is it? >>>> >>>> Stack = LIFO >>>> Queue = FIFO >>>> >>>> Anything else isn't >>> [ SNIP ] >>> >>>> >>>> lipska >>>> >>> A deque (double ended queue) is a queue generalization. Despite the >>> name, a deque is not a queue, but a queue is a deque. >> >> You have this the wrong way round I'm afraid. >> A Deque 'is a' Queue because it extends Queue, you can call Queue >> methods on Deque but you cannot call Deque methods on Queue. >> A Queue is most definitely NOT a Deque. >> >> These are first year comp sci concepts really. > [ SNIP ] > > You want to read up on generalization and specialization. On the other hand and discussing C++; http://www.brpreiss.com/books/opus4/html/page158.html Specialization The more general abstraction is the base class and the restricted abstraction is the derived class. E.g., when using specialization we would derive the class Queue from the class Deque thus: class Queue : public Deque { ... }; The Queue class interface should restrict access to only those base class member functions that are appropriate. Generalization The more restricted abstraction is the base class from which the more general abstraction is derived. E.g., when using generalization we would derive the class Deque from the class Queue thus: class Deque : public Queue { ... }; The Deque class inherits and generalizes the interface of the Queue class. appears to be at odds with my earlier assertion So, does either definition make your assertion "a deque is not a queue, but a queue is a deque" true? No it does not In the Java programming language, and where Deque extends Queue a Deque *is* a Queue and a Queue *is not* a Deque regardless of which definition of Specialization and Generalization you use. lipska -- Lipska the Kat©: Troll hunter, sandbox destroyer and farscape dreamer of Aeryn Sun