Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Java > Implementing inheritance in JAVA

Reply
Thread Tools

Implementing inheritance in JAVA

 
 
manjunath.d@gmail.com
Guest
Posts: n/a
 
      02-08-2005
Hi,

I am a naive JAVA user. Can you please tell me, oh how to implement
the following scenario

A
^ ^
/ \
B C
^ ^
\ /
D

Classes B and C extends class A, but how to define class D, such that
members of both B and C are available to D.

Thanks
>> manjunath


 
Reply With Quote
 
 
 
 
Antti S. Brax
Guest
Posts: n/a
 
      02-08-2005
http://www.velocityreviews.com/forums/(E-Mail Removed) wrote in comp.lang.java.programmer:
> Classes B and C extends class A, but how to define class D, such that
> members of both B and C are available to D.


Java does not support multiple inheritance, so class D can not
provide the methods through Java's inheritance mechanism.

Internet contains a lot of information about this. Search Google
for "java multiple inheritance".

--
Antti S. Brax Rullalautailu pitää lapset poissa ladulta
http://www.iki.fi/asb/ http://www.cs.helsinki.fi/u/abrax/hlb/
"Disconnect this cable to shorten, re-connect to lengthen."
-- Instructions on Logitech's USB mouse extension cord.
 
Reply With Quote
 
 
 
 
John
Guest
Posts: n/a
 
      02-08-2005
(E-Mail Removed) wrote:
> Hi,
>
> I am a naive JAVA user. Can you please tell me, oh how to implement
> the following scenario
>
> A
> ^ ^
> / \
> B C
> ^ ^
> \ /
> D
>
> Classes B and C extends class A, but how to define class D, such that
> members of both B and C are available to D.
>
> Thanks
>
>>>manjunath

>
>


You can't. Make D a subclass of A, just like B and C. If you want to
specify some additional behaviour for D then define interface(s) that it
must implement, along with (optionally) either B, C, or both B and C.

John
 
Reply With Quote
 
Darryl L. Pierce
Guest
Posts: n/a
 
      02-08-2005
You cannot do that. Java does not support multiply inheritence of
*implementation*.

However, if you were to make A, B and C _interfaces_, then D could
implement both B and C. Then, using patterns (such as
Wrapper/Decorator), you could do the following:

A--extended by-->B--implemented by-->Bimpl
A--extended by-->C--implemented by-->Cimpl

D--extends both-->[B,C]--contains instances of-->[Bimpl,Cimpl]

Then your D could pass calls to those methods defined in the A, B and C
interfaces to the specific instance variables of tyep Bimpl and Cimpl
as necessary.

 
Reply With Quote
 
Lorenzo Bettini
Guest
Posts: n/a
 
      02-14-2005
Darryl L. Pierce wrote:
> You cannot do that. Java does not support multiply inheritence of
> *implementation*.
>
> However, if you were to make A, B and C _interfaces_, then D could
> implement both B and C. Then, using patterns (such as
> Wrapper/Decorator), you could do the following:
>
> A--extended by-->B--implemented by-->Bimpl
> A--extended by-->C--implemented by-->Cimpl
>
> D--extends both-->[B,C]--contains instances of-->[Bimpl,Cimpl]
>
> Then your D could pass calls to those methods defined in the A, B and C
> interfaces to the specific instance variables of tyep Bimpl and Cimpl
> as necessary.
>


In our paper

On Multiple Inheritance in Java
L. Bettini, M. Loreti, B. Venneri. Technology of Object-Oriented
Languages, Systems and Architectures, Proc. of TOOLS Eastern Europe
2002, (Theo D'Hondt, Ed.), pages 1-15, Kluwer Academic Publishers, 2003.
http://music.dsi.unifi.it/abstracts/multipinh-abs.html
http://music.dsi.unifi.it/papers/multipinh.ps.gz

we provide a general algorithm to automatically implement multiple
inheritance in Java; this also shows that it is not straighforward to
simulate the exact semantics of multiple inheritance through interfaces
and object composition.

Lorenzo

--
+-----------------------------------------------------+
| Lorenzo Bettini ICQ# lbetto, 16080134 |
| PhD in Computer Science |
| Dip. Sistemi e Informatica, Univ. di Firenze |
| Tel +39 055 4237441, Fax +39 055 4237437 |
| Florence - Italy (GNU/Linux User # 158233) |
| Home Page : http://www.lorenzobettini.it |
| http://music.dsi.unifi.it XKlaim language |
| http://www.lorenzobettini.it/purple Cover Band |
| http://www.gnu.org/software/src-highlite |
| http://www.gnu.org/software/gengetopt |
| http://www.lorenzobettini.it/software/gengen |
| http://www.lorenzobettini.it/software/doublecpp |
+-----------------------------------------------------+
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Problem while implementing inheritance bintom C++ 5 03-21-2011 12:00 PM
Inheritance: Implementing pure virtual functions by inheriting froman object providing an implementation Jaco Naude C++ 5 04-01-2009 10:31 AM
Private Inheritance and Publice Inheritance karthikbalaguru C++ 9 09-10-2007 01:05 PM
mul. inheritance & overloading operator new/delete solved by virtual base inheritance? cppsks C++ 0 10-27-2004 07:49 PM
Private access modifier and Inheritance (Inheritance implementation in Java) maxw_cc Java 1 12-21-2003 11:38 AM



Advertisments