OOP Vererbung von Interfaces

nieselfriem

Bekanntes Mitglied
Hallo!

Ich habe mir für eine Datenbankimplementierung mit ein Interface erstellt und für die jeweiligen Datenbank Entitäten das Interface spezialisiert:
Oberinterface:
Java:
public interface DAO {
    public Object retrieve();
    public void add(Object entry);
    public void update(Object entry);
}
die Spezialisierungen:
Bewerber:
Java:
public interface BewerberDAO extends DAO{
    public Bewerber retrieve();
    public void add(Bewerber entry);
    public void update(Bewerber entry);
}
Arbeitgeber:
Java:
public interface ArbeitgeberDAO extends DAO{
    public Arbeitgeber retrieve();
    public void add(Bewerber entry);
    public void update(Bewerber entry);
}
nun habe ich das Interface "BewerberDAO" mit folgender Klasse implementiert:
Java:
package testjahb;

import java.sql.*;

public class SQLBewerberDAO implements BewerberDAO{
    private Connection conn;

    SQLBewerberDAO() {
        try {
            Class.forName("com.mysql.jdbc.Driver");
            conn = DriverManager.getConnection("jdbc:mysql://localhost/jahbtest?user=root&password=werner80");
        }
        catch(ClassNotFoundException ex) {
            ex.printStackTrace();
        }
        catch(SQLException ex) {
            ex.printStackTrace();
        }
    }//Kontruktor

    public Bewerber retrieve() {
        Bewerber bew = new Bewerber();
        if(conn != null) {
            try {
                PreparedStatement stmt = conn.prepareStatement("BId , Name, Vorname FROM Bewerber");
                ResultSet rs = stmt.executeQuery();

                while(rs.next()) {
                    int bid = rs.getInt(1);
                    String name = rs.getString(2);
                    String vorname = rs.getString(3);
                    bew.setName(name);
                    bew.setVorname(vorname);
                    bew.setId(bid);
                }

                conn.close();

            }catch(SQLException ex) {
                ex.printStackTrace();
            }
        }
        return bew;
    }

    public void add(Bewerber entry) {
        if (conn != null) {
            try {
                PreparedStatement stmt = conn.prepareStatement(
                        "INSERT INTO bewerber " +
                        "(Name, Vorname) " +
                        "VALUES (?,?)");
                stmt.setString(1, entry.getName());
                stmt.setString(2, entry.getVorname());

                stmt.executeUpdate();

                conn.close();
            }catch(SQLException ex) {
                ex.printStackTrace();
            }//catch
        }//if
    }//add

    public void update(Bewerber entry) {
        if(conn != null) {
            try {
                PreparedStatement stmt = conn.prepareStatement(
                        "UPDATE Bewerber SET "+
                        "Name = ?, Vorname = ? WHERE Bid = ?");
                stmt.setString(1, entry.getName());
                stmt.setString(2, entry.getVorname());
                stmt.executeUpdate();
                conn.close();
            }
            catch(SQLException ex) {
                ex.printStackTrace();
            }
        }
    }
}//SQLBewerberDAO
Nun gibt es zwei Fragen

1. Wieso bekomme ich die Fehlermeldung:
Code:
testjahb.SQLBewerberDAO is not abstract and does not override abstract method update(java.lang.Object) in testjahb.DAO
public class SQLBewerberDAO implements BewerberDAO...
Obwohl die Methode implementiert worden ist.
Bei den Methoden "retrieve()", "add()" gibt es merkwürdigerweise keine Probleme.
2. Ist die Vererbungshierachie der Interfaces so wie ich sie gemacht habe sinnvoll?

Gruß niesel
 

Noctarius

Top Contributor
Benutze Generics:
Java:
public interface DAO<T> {
  void add(T entry);
}

public interface BewerberDao extends DAO<Bewerber> {
  ...
}

public class BewerberDaoImpl implements BewerberDao {
  void add(Bewerber entry) { ... }
}
 

Michael...

Top Contributor
Dafür reicht eine generisches Interface:
Java:
interface DAO<T> {
    public T retrieve();
    public void add(T entry);
    public void update(T entry);
}
Das kann man dann direkt implementieren. Die "Zwischen" Interfaces sind dann überflüssig.
 

Noctarius

Top Contributor
Dafür reicht eine generisches Interface:
Java:
interface DAO<T> {
    public T retrieve();
    public void add(T entry);
    public void update(T entry);
}
Das kann man dann direkt implementieren. Die "Zwischen" Interfaces sind dann überflüssig.

Jo stimmt, wenn das alle Methoden sind reicht das generische Interface, falls mehr gebraucht werden je nach Datentyp sollten abgeleitete Interfaces genutzt werden wie im Beispiel.
 

nieselfriem

Bekanntes Mitglied
Hab ich auf die zweite Variante geändert. und die oberste Zeile wie folgt geändert:
Interface DAO:
Java:
public interface DAO<T> {

    public T retrieve();
    public void add(T entry);
    public void update(T entry);
}

Java:
public class SQLBewerberDAO implements DAO
...

Jedoch kommt immer noch die Fehlermeldung
Code:
SQLBewerberDAO is not abstract and does not override abstract method update(java.lang.Object) in testjahb.DAO
public class SQLBewerberDAO implements DAO{

?:(
 
G

Gast2

Gast
Java:
implements DAO
Wenn du hier keinen generischen Typ angibst wird Object als Default genommen
 

firewarrior

Aktives Mitglied
Tut mir Leid, dass das Thema nicht direkt dem Problem des TO zu tun hat, aber was wäre denn eine geeignete Methode um Passwörter zu verschleiern, später aber wieder zu verwenden sind? (Also z.B. kein md5). Beispielsweise für Datenbankzugangsdaten in xml Dateien?
 
G

Gast2

Gast
Tut mir Leid, dass das Thema nicht direkt dem Problem des TO zu tun hat, aber was wäre denn eine geeignete Methode um Passwörter zu verschleiern, später aber wieder zu verwenden sind? (Also z.B. kein md5). Beispielsweise für Datenbankzugangsdaten in xml Dateien?
Hm, warum erstellst du dann keinen neuen Thread dafür?
Wofür wollst du die denn Datenbankdaten verschlüsseln? In der Regel sollte solche Daten nicht auf nem clientsystem liegen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
I JSON / XML Struktur mit Vererbung / Interfaces Java Basics - Anfänger-Themen 0
A Vererbung/Interfaces/Generics Java Basics - Anfänger-Themen 12
V Vererbung Vererbung, Interfaces und OOP... Java Basics - Anfänger-Themen 10
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
M Interface oder Vererbung? Java Basics - Anfänger-Themen 12
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
A Methoden Vererbung und Interface Java Basics - Anfänger-Themen 14
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
B Best Practice Unschlüssig ob Vererbung oder Interface Java Basics - Anfänger-Themen 2
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
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
B Objekte zählen/ Vererbung/ Kopplung/ Interface/ Abstract Class Java Basics - Anfänger-Themen 5
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
T Vererbung und interface. 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
N Generics Vererbung Wildcard Interface Java Basics - Anfänger-Themen 8
A Benötige Hilfe bei Vererbung Java Basics - Anfänger-Themen 1
M Anfängerprobleme mit Vererbung Java Basics - Anfänger-Themen 27
J Vererbung Java Basics - Anfänger-Themen 9

Ähnliche Java Themen

Neue Themen


Oben