Rational Rose im Umgang mit Mehrfachvererbung (Simulation)

Status
Nicht offen für weitere Antworten.

ven000m

Bekanntes Mitglied
Hallo Freunde,

ich muss in UML testen wie mein Werkzeug ein bekanntes Problem was aus Mehrfachvererbung besteht in Klassen etc umsetzt.

Dabei habe ich mich zur Simulation an diesen Sachverhalt gehalten:
Mehrfachvererbung.PNG


Mir ist bewusst, dass Java keine richtige Mehrfachvererbung kann und dieses mit Hilfe von Interfaces ähnlich nachbilden kann bzw. versucht. In Rational Rose habe ich somit das obige Bild gezeichnet und anschließend umsetzen lassen, dass ging auch wirklich super, nur erbt meine Klasse Amphibienfahrzeug lediglich von Wasserfahrzeug. Weder wird hier noch ein Interface implementiert noch sonst wie die Brücke zum Landfahrzeug geschlagen.

Das kann doch nichtig sein, oder gerät da dass Werkzeug an seine Sprachgrenzen, die ja nicht zuletzt von Java gesetzt werden und es geht schlichtweg nicht?

Vielen Dank für Eure Antworten.

Hier ist der generierte Code:

Code:
/*
 * Created on 30.05.2006
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */

/**
 * @author ven000m
 *
 * TODO To change the template for this generated type comment go to
 * Window - Preferences - Java - Code Style - Code Templates
 * @uml.annotations
 * derived_abstraction="platform:/resource/Mehrfachvererbung/Mehrfachvererbung.emx#_yX9p4O8AEdqdgJZipxdEcQ"
 * @generated "UML in Java (com.ibm.xtools.transform.uml2.java.internal.UML2JavaTransform)"
 */
public class Wasserfahrzeug {
    /**
     * Comment for <code>Tiefgang</code>
     * @generated "UML in Java (com.ibm.xtools.transform.uml2.java.internal.UML2JavaTransform)"
     */
	private Integer Tiefgang;

    /**
     * @generated "UML in Java (com.ibm.xtools.transform.uml2.java.internal.UML2JavaTransform)"
     */
	public void KmFahren() {
        // TODO Auto-generated method stub
    }
}



Code:
/**
 * @author ven000m
 *
 * TODO To change the template for this generated type comment go to
 * Window - Preferences - Java - Code Style - Code Templates
 * @uml.annotations
 * derived_abstraction="platform:/resource/Mehrfachvererbung/Mehrfachvererbung.emx#_xUA5kO8AEdqdgJZipxdEcQ"
 * @generated "UML in Java (com.ibm.xtools.transform.uml2.java.internal.UML2JavaTransform)"
 */
public class Landfahrzeug {
    /**
     * Comment for <code>Raederzahl</code>
     * @generated "UML in Java (com.ibm.xtools.transform.uml2.java.internal.UML2JavaTransform)"
     */
	private Integer Raederzahl;

    /**
     * Comment for <code>Zuladung</code>
     * @generated "UML in Java (com.ibm.xtools.transform.uml2.java.internal.UML2JavaTransform)"
     */
	private Integer Zuladung;

    /**
     * Comment for <code>Person</code>
     * @generated "UML in Java (com.ibm.xtools.transform.uml2.java.internal.UML2JavaTransform)"
     */
	private Integer Person;

    /**
     * @param intZuladung
     * @generated "UML in Java (com.ibm.xtools.transform.uml2.java.internal.UML2JavaTransform)"
     */
    public void Zuladung(Object intZuladung) {
        // TODO Auto-generated method stub
    }

    /**
     * @param intperson
     * @generated "UML in Java (com.ibm.xtools.transform.uml2.java.internal.UML2JavaTransform)"
     */
    public void AddPerson(Object intperson) {
        // TODO Auto-generated method stub
    }
}

Code:
import java.util.Set;

/**
 * @author ven000m
 *
 * TODO To change the template for this generated type comment go to
 * Window - Preferences - Java - Code Style - Code Templates
 * @uml.annotations
 * derived_abstraction="platform:/resource/Mehrfachvererbung/Mehrfachvererbung.emx#_zcg3IO8AEdqdgJZipxdEcQ"
 * @generated "UML in Java (com.ibm.xtools.transform.uml2.java.internal.UML2JavaTransform)"
 */
public class Amphibienfahrzeug extends Wasserfahrzeug {
    /**
     * Comment for <code>landfahrzeug</code>
     * @generated "UML in Java (com.ibm.xtools.transform.uml2.java.internal.UML2JavaTransform)"
     */
	private Set landfahrzeug;

    /**
     * Comment for <code>Sitzplaetze</code>
     * @generated "UML in Java (com.ibm.xtools.transform.uml2.java.internal.UML2JavaTransform)"
     */
	private Integer Sitzplaetze;

    /**
     * Comment for <code>Antriebsleistung</code>
     * @generated "UML in Java (com.ibm.xtools.transform.uml2.java.internal.UML2JavaTransform)"
     */
	private Integer Antriebsleistung;

    /**
     * @generated "UML in Java (com.ibm.xtools.transform.uml2.java.internal.UML2JavaTransform)"
     */
	public void voidAnzeigen() {
        // TODO Auto-generated method stub
    }
}
 

dieta

Top Contributor
Ich würde das eher mit zwei Interfaces lösen:
Code:
interface iwasserfahrzeug
{
    int getTiefgang();
    void setTiefgang(int neuerWert);
    // usw.usw. für alle anderen Variablen
}

interface ilandfahrzeug
{
    int getRaederzahl();
    void setRaederzahl(int neuerWert);
    // usw.usw. für alle anderen Variablen
}

class wasserfahrzeug implements iwasserfahrzeug
{
    //...
}

class landfahrzeug implements ilandfahrzeug
{
    //...
}

class amphibienfahrzeug implements iwasserfahrzeug, ilandfahrzeug
{
    //Methoden von iwasserfahrzeug und ilandfahrzeug
}
 

ven000m

Bekanntes Mitglied
Hi,

richtig , dass wäre die auch mir bekannte "Musterlösung", allerdings will ich das von Rational Rose erzeugt wissen.

Kann das Programm diese Umsetzung nicht leisten, weil nicht ausreichend dafür ausgelegt?

Danke für deine Antwort.

-------------
gruß
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S IBM Rational Rose als Free Download? Softwareentwicklung 2

Ähnliche Java Themen

Neue Themen


Oben