Path: csiph.com!newsfeed.hal-mli.net!feeder3.hal-mli.net!newsfeed.hal-mli.net!feeder1.hal-mli.net!npeer01.iad.highwinds-media.com!news.highwinds-media.com!feed-me.highwinds-media.com!nx02.iad01.newshosting.com!newshosting.com!news-out.readnews.com!transit3.readnews.com!news-out.news.tds.net!newsreading01.news.tds.net!53ab2750!not-for-mail From: "Leif Roar Moldskred" Subject: Re: multiple inheritance Message-ID: <502943B6.56774.calajapr@time.synchro.net> X-Comment-To: Arne Vajhøj Newsgroups: comp.lang.java.programmer In-Reply-To: <502943B5.56769.calajapr@time.synchro.net> References: <502943B5.56769.calajapr@time.synchro.net> X-FTN-AREA: COMP.LANG.JAVA.PROGRAMMER X-FTN-MSGID: 1:261/38 d451ac77 X-FTN-REPLY: 1:261/38 d2b4e9fa Content-Type: text/plain; charset=IBM437 Content-Transfer-Encoding: 8bit X-Gateway: time.synchro.net [Synchronet 3.16a-Win32 NewsLink 1.98] Lines: 63 Date: Mon, 13 Aug 2012 18:36:21 GMT NNTP-Posting-Host: 69.21.70.65 X-Complaints-To: news@tds.net X-Trace: newsreading01.news.tds.net 1344882981 69.21.70.65 (Mon, 13 Aug 2012 13:36:21 CDT) NNTP-Posting-Date: Mon, 13 Aug 2012 13:36:21 CDT Organization: tds.net X-Received-Bytes: 2678 Xref: csiph.com comp.lang.java.programmer:17826 To: Arne Vajhøj From: Leif Roar Moldskred Arne Vajh-,j wrote: > On 8/2/2012 4:10 AM, Roedy Green wrote: >> >> 1. It has interfaces which gives much of the ability at lighter >> weight.. > > Only for a very limited type of types (those with no implementation > at all). At times, I've wished that Java had automatic delegation (composition) in addition to inheritance and interface implementation, where the compiler automatically adds the public methods and fields from delegated objects, except when there's a conflict of names. Something like this, maybe: public class ClassAlfa { public void alfaMethod( ) { ... } public void sharedMethod( ) { ... } public void anotherSharedMethod( ) { ... } } public class ClassBeta { public void betaMethod( ) { ... } public void sharedMethod( ) { ... } public void anotherSharedMethod( ) { ... } } public class Delegator { private delegate ClassAlfa ALFA; private delegate ClassBeta BETA; public void sharedMethod( ) { ALFA.sharedMethod( ); } public void anotherSharedMethod( ) { ALFA.sharedMethod( ); BETA.sharedMethod( ); } } public class Example { public static void main( String[] args ) { private Delegator delegator; delegator.alfaMethod( ); delegator.betaMethod( ); delegator.sharedMethod( ); delegator.anotherSharedMethod( ); } } -- Leif Roar Moldskred --- BBBS/Li6 v4.10 Dada-1 * Origin: Prism bbs (1:261/38) --- Synchronet 3.16a-Win32 NewsLink 1.98 Time Warp of the Future BBS - telnet://time.synchro.net:24