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.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM autolearn=ham autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,1116ece181be1aea X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2003-09-11 16:04:08 PST Path: archiver1.google.com!news1.google.com!newsfeed.stanford.edu!logbridge.uoregon.edu!snoopy.risq.qc.ca!chi1.webusenet.com!news.webusenet.com!cyclone1.gnilink.net!spamkiller2.gnilink.net!nwrdny01.gnilink.net.POSTED!53ab2750!not-for-mail From: Hyman Rosen User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.5b) Gecko/20030901 Thunderbird/0.2 X-Accept-Language: en-us, en MIME-Version: 1.0 Newsgroups: comp.lang.ada Subject: Re: Is the Writing on the Wall for Ada? References: <3F5F7FDC.30500@attbi.com> <3F6079A9.6080108@attbi.com> <3F60E380.4020307@attbi.com> In-Reply-To: Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Message-ID: Date: Thu, 11 Sep 2003 23:04:06 GMT NNTP-Posting-Host: 162.84.176.54 X-Complaints-To: abuse@verizon.net X-Trace: nwrdny01.gnilink.net 1063321446 162.84.176.54 (Thu, 11 Sep 2003 19:04:06 EDT) NNTP-Posting-Date: Thu, 11 Sep 2003 19:04:06 EDT Xref: archiver1.google.com comp.lang.ada:42393 Date: 2003-09-11T23:04:06+00:00 List-Id: Stephen Leake wrote: >>But type inheritance cannot be from two concrete parents, no matter >>what the language--one parent has to be abstract. > > You and I and many others understand this; still others do not. That is an argument which is ridiculous on its face, so perhaps you can explain the deep meaning that makes it so? The simple counterargument is that when you choose to implement more than one interface in a class, it's possible, and even likely, that there already exist concrete classes which implement all or part of those interfaces in a way which is suitable for what you need, and therefore your class can inherit from more than one of these concrete classes to gain those implementations for free. One simple example is often found in Java, where "adapter" classes implement all functions of an interface in a no-op manner, so that clsses which need only a small number of methods to do something don't need to define all of the others. I easily see the need for inheriting from more than one such adapter. In C++ I can do this, or I can mimic interface-only inheritance.