Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!news.glorb.com!news-in-01.newsfeed.easynews.com!easynews.com!easynews!news-out.news.tds.net!newsreading01.news.tds.net!53ab2750!not-for-mail From: "=?UTF-8?B?QXJuZSBWYWpow7hq?=" <=?utf-8?b?qxjuzsbwywpow7hq?=@1:261/38.remove-rj6-this> Subject: Re: multiple inheritance Message-ID: <502FD853.56957.calajapr@time.synchro.net> X-Comment-To: Leif Roar Moldskred Newsgroups: comp.lang.java.programmer In-Reply-To: <502943B6.56774.calajapr@time.synchro.net> References: <502943B6.56774.calajapr@time.synchro.net> X-FTN-AREA: COMP.LANG.JAVA.PROGRAMMER X-FTN-MSGID: 1:261/38 7d346fc1 X-FTN-REPLY: 1:261/38 d451ac77 Content-Type: text/plain; charset=IBM437 Content-Transfer-Encoding: 8bit X-Gateway: time.synchro.net [Synchronet 3.16a-Win32 NewsLink 1.98] Lines: 68 Date: Sat, 18 Aug 2012 18:36:23 GMT NNTP-Posting-Host: 69.21.70.65 X-Complaints-To: news@tds.net X-Trace: newsreading01.news.tds.net 1345314983 69.21.70.65 (Sat, 18 Aug 2012 13:36:23 CDT) NNTP-Posting-Date: Sat, 18 Aug 2012 13:36:23 CDT Organization: tds.net X-Received-Bytes: 2872 Xref: csiph.com comp.lang.java.programmer:18014 To: Leif Roar Moldskred From: =?UTF-8?B?QXJuZSBWYWpow7hq?= On 8/13/2012 6:55 AM, Leif Roar Moldskred wrote: > 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( ); > } > } You IDE should be able to generate the code for you. But it could save some code in some cases. Arne --- 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