Methoden Vererbung und Interface

Ash

Mitglied
Hallo Leute, ich hab hier ein Verständnisproblem. Vll. könnt ihr weiterhelfen
Meine Klasse GraphImpl implementiert bereits die methoden 1 bis 4 der Schnittstelle Graph.
Nun soll die Klasse ObservableGraphImpl das Interface ObservableGraph implementieren.
Jetzt müssen deshalb nochmal die Methoden 1 bis 4 in der Klasse ObservableGraphImpl implementiert werden.
Was keinen Sinn macht, weil ich die Methoden bereits in GraphImpl implementiert habe.
Wie setzt man das ganze am besten um?
 

Anhänge

  • Unbenannt.png
    Unbenannt.png
    27,1 KB · Aufrufe: 12

Ash

Mitglied
Dem UML nach besteht zwischen GraphImpl und ObservableGraphImpl lediglich eine Assoziation. Insofern musst Du natürlich die Methoden implementieren. Allerdings kann die Implementierung ja einfach an GraphImpl delegieren.
Bedeutet das, dass ich bei ObservableGraphImpl eine Instanz von GraphImpl erstelle, und dann: method1{ return new GraphImpl( ).method1( ); } schreibe?
 

mihe7

Top Contributor
Jein, Du musst die Instanz nicht unbedingt in ObservableGraphImpl erstellen, Du kannst sie auch dem Konstruktor mitgeben.

Java:
private GraphImpl graph;

public ObservableGraphImpl(GraphImpl graph) {
     this.graph = graph;
}

public void methode() {
     graph.methode();
}

Google mal nach Decorator Design Pattern.
 

ing0-bing0

Aktives Mitglied
Ich glaube ich weiß wo hier das Problem versteckt ist...

Beispiel:
Java:
public interface IA {
    default void ma1() {
        System.out.println("IA ma1()");
    }
}

interface IAA extends IA {
    @Override
    default void ma1() {
        System.out.println("IAA ma1()");
        // wird nicht erreicht...
    }
}

interface IAAA extends IAA {
    @Override
    default void ma1() {
        System.out.println("IAAA ma1()");
    }
}

class CA implements IA {
    @Override
    public void ma1() {
        IA.super.ma1();
    }
}

class CB extends CA implements IAAA {
    @Override
    public void ma1() {
        super.ma1();
        // IAA.super.ma1(); funktioniert nicht...
    }

    public static void main(String[] args) {
        new IA() {}.ma1();
        new IAA() {}.ma1();
        new IAAA() {}.ma1();
        new CA().ma1();
        new CB().ma1();
    }
}

Die Methode ma1() vom Interface IAA kann in den implementierenden Klassen CA und CB nicht aufgerufen werden, egal was man anstellt...

Das Problem hat auch einen Namen, aber gerade vergessen.
 
G

Gelöschtes Mitglied 65838

Gast
es wird nicht erreicht wegen doppel Vererbung, IAAA müsste super. ma1() aufrufen
 
G

Gelöschtes Mitglied 65838

Gast
abgesehen dass es eine Misshandlung von default Methoden ist


wenn man sie mal vernünftig benennen würde und einen vernünftigen Code zeigt könnte man es erklären
 

mihe7

Top Contributor
Ich glaube ich weiß wo hier das Problem versteckt ist...
Das scheitert schon daran, dass es in der Aufgabe keine Vererbungsbeziehung zwischen den beiden Klassen gibt.

Hm, und weshalb kann ich dann in der implementierenden Klasse zwar IA und IAAA aufrufen, aber nicht IAA? Da ist ne Lücke...
Das geht grundsätzlich nicht, ist bei Klassen nicht anders, s. auch https://docs.oracle.com/javase/specs/jls/se8/html/jls-15.html#jls-15.12.1
 

LimDul

Top Contributor
Die Aufgabenstellung ist nicht unsinnig. Default-Methoden kommen da überhaupt nicht vor. Da ist einfach eine Vererbung von Interfaces. Die Implementierungen sind nur in den Klassen mit Impl am Ende.
 
G

Gelöschtes Mitglied 65838

Gast
Die Aufgabenstellung ist nicht unsinnig. Default-Methoden kommen da überhaupt nicht vor. Da ist einfach eine Vererbung von Interfaces. Die Implementierungen sind nur in den Klassen mit Impl am Ende.
default methoden sind nach meinem prof nur für "übergangs lösungen" geeignet... keine ahnung ob das so gilt aber hat sinn ergeben...also einfach nicht mit defaults umher ballern
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Interface oder Vererbung? Java Basics - Anfänger-Themen 12
B Best Practice Unschlüssig ob Vererbung oder Interface Java Basics - Anfänger-Themen 2
B Objekte zählen/ Vererbung/ Kopplung/ Interface/ Abstract Class Java Basics - Anfänger-Themen 5
T Vererbung und interface. Java Basics - Anfänger-Themen 1
N Generics Vererbung Wildcard Interface Java Basics - Anfänger-Themen 8
A Klasse,Vererbung,Interface,Singleton,Thread Java Basics - Anfänger-Themen 5
K Wann Vererbung und wann Interface verwenden? Java Basics - Anfänger-Themen 12
C Vererbung, Interface etc. Java Basics - Anfänger-Themen 6
P Unterschied zwischen Interface und Vererbung und Sinn? Java Basics - Anfänger-Themen 5
imocode Vererbung Problem mit Vererbung Java Basics - Anfänger-Themen 2
M Vererbung - Polymorphie Java Basics - Anfänger-Themen 37
L Java- Vererbung Java Basics - Anfänger-Themen 4
ineedhelpinjava Vererbung Java Basics - Anfänger-Themen 12
ineedhelpinjava Vererbung Java Basics - Anfänger-Themen 1
I JSON / XML Struktur mit Vererbung / Interfaces Java Basics - Anfänger-Themen 0
M Vererbung Java Basics - Anfänger-Themen 6
M Designentscheidung von Attributen/Methoden im Falle von Vererbung Java Basics - Anfänger-Themen 8
M Generics Vererbung Listen Java Basics - Anfänger-Themen 2
D Klassen und Vererbung Java Basics - Anfänger-Themen 2
U Vererbung Java Basics - Anfänger-Themen 7
D Vererbung Java Basics - Anfänger-Themen 3
K Schleife berechnet kein Ergebnis (Vererbung) Java Basics - Anfänger-Themen 6
00111010101 Objektorientiertes Programmieren mit Vererbung (Zahlen in Array verschwinden) Java Basics - Anfänger-Themen 3
W Zur Vererbung: Wann und wie? Java Basics - Anfänger-Themen 35
H Datenkapselung, Vererbung und UML Java Basics - Anfänger-Themen 16
districon Super-Stichwort/ Vererbung Java Basics - Anfänger-Themen 3
YaU Vererbung erstellt NullPointerException? Java Basics - Anfänger-Themen 4
1 Vererbung Klassenattribute Java Basics - Anfänger-Themen 9
TimoN11 Frage zu Java-Vererbung (Cast) Java Basics - Anfänger-Themen 5
N Thema Vererbung Java Basics - Anfänger-Themen 31
A Vererbung Vererbung Übung Java Basics - Anfänger-Themen 5
B Vererbung - Sichtbarkeitsmodifikation - protected Java Basics - Anfänger-Themen 10
G Java Vererbung Java Basics - Anfänger-Themen 8
Y Vererbung Konto - Anfangsprobleme Java Basics - Anfänger-Themen 7
A Vererbung Klassen im Bezug auf Auto´s Java Basics - Anfänger-Themen 18
A Klassen Vererbung und zusätzliche Unterklassen Java Basics - Anfänger-Themen 23
M Vererbung mit Enums Java Basics - Anfänger-Themen 8
Kirby.exe Vererbung im Detail erklärt? Java Basics - Anfänger-Themen 9
N Modellierung, vererbung, Java Basics - Anfänger-Themen 163
M Fehlendes Verständnis für dynamische Bindung und Vererbung Java Basics - Anfänger-Themen 13
W OOP Vererbung im Computerspiel Java Basics - Anfänger-Themen 7
J Probleme mit Vererbung Java Basics - Anfänger-Themen 4
I Vererbung Java Basics - Anfänger-Themen 13
W OOP Vererbung und Problem bei Zählschleife in einer Methode Java Basics - Anfänger-Themen 10
W Methoden Verständnisfrage Vererbung von Methoden Java Basics - Anfänger-Themen 14
V Vererbung Java Basics - Anfänger-Themen 2
J Frage zur Vererbung Java Basics - Anfänger-Themen 1
J Vererbung Java Basics - Anfänger-Themen 3
U Was löst meine NullPointerException aus? (Vererbung) Java Basics - Anfänger-Themen 12
O Vererbung Ueben mit kleiner Datenstruktur von Räumen Java Basics - Anfänger-Themen 10
O Umgang mit Vererbung verstehen Java Basics - Anfänger-Themen 4
A Vererbung/Interfaces/Generics Java Basics - Anfänger-Themen 12
O Vererbung änderung des Konstruktors Java Basics - Anfänger-Themen 8
L Vererbung Java Basics - Anfänger-Themen 5
E HashMap+Vererbung Java Basics - Anfänger-Themen 11
E Vererbung super-Methoden Aufruf Java Basics - Anfänger-Themen 3
B Java Vererbung Fragen (zu Code Beispiel) Java Basics - Anfänger-Themen 3
A Objekterstellung bei der Vererbung Java Basics - Anfänger-Themen 7
P Vererbung Warum funktioniert die Vererbung hier nicht Java Basics - Anfänger-Themen 14
S Vererbung Java mehrfach Java Basics - Anfänger-Themen 10
A Klassen Vererbung privater Methoden und Member Java Basics - Anfänger-Themen 12
A Konstruktoren Vererbung Java Basics - Anfänger-Themen 3
ReinerCoder Vererbung von JFrame in einer Klasse entfernen Java Basics - Anfänger-Themen 5
W Vererbung, abstract und Konstruktoren Java Basics - Anfänger-Themen 30
J Vererbung und Methodenaufruf Java Basics - Anfänger-Themen 11
G Polymorphie, Vererbung, statischer Typ, Laufzeittyp Java Basics - Anfänger-Themen 2
H Vererbung mit private instanzvariablen Java Basics - Anfänger-Themen 9
S Vererbung Funktionsweise Code zur Vererbung Java Basics - Anfänger-Themen 1
C Methoden Vererbung private Attribute/public Methoden Java Basics - Anfänger-Themen 4
S Verständnis Vererbung Java Basics - Anfänger-Themen 3
D JavaFX Vererbung Java Basics - Anfänger-Themen 2
U Vererbung Generizität und Vererbung Java Basics - Anfänger-Themen 4
A Vererbung bei Klassen mit Objekt der Klasse im Konstruktor Java Basics - Anfänger-Themen 4
K Vererbung Octagon von Circle Java Basics - Anfänger-Themen 0
B Hilfe bei Vererbung Java Basics - Anfänger-Themen 2
D Vererbung Frage zum Klassenaufbau mit Vererbung Java Basics - Anfänger-Themen 1
S Gehaltsberechnung (Vererbung, abstrakte Methoden) Java Basics - Anfänger-Themen 6
S Vererbung Java Basics - Anfänger-Themen 1
F Vererbung in zwei Richtungen? Java Basics - Anfänger-Themen 14
D Vererbung / Polymorphie Java Basics - Anfänger-Themen 5
O Vererbung Java Basics - Anfänger-Themen 5
MiMa Vererbung Theorie OK, Praxis ?? Java Basics - Anfänger-Themen 4
Arif Vererbung Vererbung Variablen überschreiben Java Basics - Anfänger-Themen 1
C Vererbung - Ausgaben bestimmen Java Basics - Anfänger-Themen 6
S Vererbung Java Basics - Anfänger-Themen 10
L Setter und Getter/Vererbung Java Basics - Anfänger-Themen 6
C Konstruktoren und Vererbung Java Basics - Anfänger-Themen 2
J Kleinere Frage zur Vererbung/Objekterzeugung Java Basics - Anfänger-Themen 2
G Vererbung Java Basics - Anfänger-Themen 12
J Vererbung privater Variablen Java Basics - Anfänger-Themen 7
J Vererbung Vererbung von Methoden Java Basics - Anfänger-Themen 6
B Vererbung Java Basics - Anfänger-Themen 12
K Vererbung (super) Java Basics - Anfänger-Themen 2
A ArrayQueue mit Exceptions und Vererbung Java Basics - Anfänger-Themen 3
J Java: static bei Vererbung Java Basics - Anfänger-Themen 5
C Vererbung Java Basics - Anfänger-Themen 4
L Vererbung Java Basics - Anfänger-Themen 3
J Klassenorganisation | Vererbung Java Basics - Anfänger-Themen 1
B Vererbung Vererbung Java Basics - Anfänger-Themen 2
A Benötige Hilfe bei Vererbung Java Basics - Anfänger-Themen 1

Ähnliche Java Themen

Neue Themen


Oben