Implementing inheritance in JAVA

Discussion in 'Java' started by manjunath.d, Feb 8, 2005.

  1. manjunath.d

    manjunath.d Guest


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

    ^ ^
    / \
    B C
    ^ ^
    \ /

    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.

    manjunath.d, Feb 8, 2005
    1. Advertisements

  2. 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, Feb 8, 2005
    1. Advertisements

  3. manjunath.d

    John Guest

    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, Feb 8, 2005
  4. You cannot do that. Java does not support multiply inheritence of

    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.
    Darryl L. Pierce, Feb 8, 2005
  5. 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.

    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 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 : |
    | XKlaim language |
    | Cover Band |
    | |
    | |
    | |
    | |
    Lorenzo Bettini, Feb 14, 2005
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.