Klassen Warum sollte man Abstraktion verwenden?

moelrobi

Neues Mitglied
Guten Tag,

ich habe zwei Klassen:
Java:
package moelrobi.schule.verObj;

import java.util.*;

public abstract class Kunde extends PasswortLogik {
    private int kundenNummer;
    private Date geburtsdatum;
    private Date angelegtAm;
    private String vorname;
    private String nachname;
    private boolean istWeiblich;
    private Adresse privateAdresse;
    private Adresse geschäftsAdresse;
    private String passwort;

    public Adresse getPrivateAdresse() {
        return privateAdresse;
    }

    public void setPrivateAdresse(Adresse privateAdresse) {
        this.privateAdresse = privateAdresse;
    }

    public Adresse getGeschäftsAdresse() {
        return geschäftsAdresse;
    }

    public void setGeschäftsAdresse(Adresse geschäftsAdresse) {
        this.geschäftsAdresse = geschäftsAdresse;
    }

    public void setKundenNummer(int kundenNummer) {
        this.kundenNummer = kundenNummer;
    }

    public void setGeburtsdatum(Date geburtsdatum) {
        this.geburtsdatum = geburtsdatum;
    }

    public void setAngelegtAm(Date angelegtAm) {
        this.angelegtAm = angelegtAm;
    }

    public void setVorname(String vorname) {
        this.vorname = vorname;
    }

    public void setNachname(String nachname) {
        this.nachname = nachname;
    }

    public void setIstWeiblich(boolean istWeiblich) {
        this.istWeiblich = istWeiblich;
    }

    public int getKundenNummer() {
        return kundenNummer;
    }

    public Date getGeburtsdatum() {
        return geburtsdatum;
    }

    public Date getAngelegtAm() {
        return angelegtAm;
    }

    public String getVorname() {
        return vorname;
    }

    public String getNachname() {
        return nachname;
    }

    public boolean isIstWeiblich() {
        return istWeiblich;
    }

    public Kunde() {

    }

    @Override
    public String toString() {
        return "Kunde [kundenNummer=" + kundenNummer + ", geburtsdatum=" + geburtsdatum + ", angelegtAm=" + angelegtAm
                + ", vorname=" + vorname + ", nachname=" + nachname + ", istWeiblich=" + istWeiblich
                + ", privateAdresse=" + privateAdresse + ", geschäftsAdresse=" + geschäftsAdresse + "]";
    }
   
    public boolean KundenPasswort(String pw) {
        if(pw.length() >= 6) {
            this.passwort = pw;
            return true;
        }
        else return false;
    }
   
}

Java:
package moelrobi.schule.verObj;

public abstract class PasswortLogik{
   public abstract boolean kundenPasswort(String pw);
}

und ich verstehe nicht ganz warum ich hier die Abstraktion anwenden soll. Meine Aufgabe aus der Schule sagt zwar vor das ich es so tun soll aber somit habe ich ja nun eine dedizierte Methode in der Klasse Kunde definiert.

Könnt ihr mir das beantworten?

MfG,
Rob
 
Sicher, dass ihr eine abstrakte Klassen verwenden sollt und kein Interface? Warum ihr unbedingt eine abstrakte Klasse nutzen sollt erschließt sich mir momentan auch nicht.

BTW:
public boolean KundenPasswort(String pw) { (implementierter Code)
ist nicht das gleiche wie
public boolean kundenPasswort(String pw) (Code aus der abstrakten Klasse)
 
BTW:
public boolean KundenPasswort(String pw) { (implementierter Code)
ist nicht das gleiche wie
public boolean kundenPasswort(String pw) (Code aus der abstrakten Klasse)

Warum ist das nicht das gleiche? ich dachte das dann die Methode aus der abstrakten Klasse übernommen wird.

Das hier ist die Aufgabe:
Ihr Ausbilder möchte, dass Sie die Super-Klasse von Mitarbeiter und Kunde anpassen. Durch Abstraktion soll sichergestellt werden, dass jede Sub-Klasse der Superklasse Passwortlogik implementiert.

Für die Klassen Mitarbeiter und Kunde soll folgendes gelten:

· Die setPasswort-Methode der Klasse Kunde soll das Passwort nur setzen, wenn es mindesten 6stellig ist.

· Mitarbeiter können beliebige Passwörter wählen.

Planen Sie die Umsetzung dieser Anforderungen durch den Einsatz von Abstraktion und beschreiben Sie Ihren Lösungsansatz.

Kann auch sein das ich das Komplett nicht verstanden hatte und somit es komplett falsch angegangen bin...
 

Zurück
Oben