2016-04-03 15 views
-2

Erhalten Sie immer den Fehler, ich kann nicht scheinen, herauszufinden, warum, die abstrakte Methode ist implementiert. Ich habe versucht, das Stichwort public hinzuzufügen, aber das hat mir überhaupt nicht geholfen. Ich habe Beispiele im Internet über abstrakte Methode gelesen, aber die meisten von ihnen sind void.Muss abstrakte Methode Fehler implementieren, aber es ist da

Die abstrakte Klasse:

public abstract class Osoba { 

private String ime_prezime; 
private char pol; 

public Osoba(String ime_prezime, char pol) { 
    this.ime_prezime=ime_prezime; 
    this.pol=pol; 

} 

public String getImePrezime() { return ime_prezime; } 
public void setImePrezime(String ime_prezime) { this.ime_prezime=ime_prezime; } 

public char getPol() { return pol; } 
public void setPol(char pol) { this.pol=pol; } 



abstract int brojGodinaOsobe(Datum danasnji_datum); 
} 

Und die Unterklasse:

public class OsobaDatum extends Osoba{ 

private Datum datum_rodjenja; 

public OsobaDatum(String ime_prezime, char pol, final Datum datum_rodjenja) { 
    super(ime_prezime, pol); 
    this.datum_rodjenja=datum_rodjenja; 
} 

public String toString() { 
    return "OsobaDatum: \n" + "Ime i prezime: " + getImePrezime() + 
      "\n" + "Pol: " + getPol() + "\nDatum rodjenja: " 
      + datum_rodjenja.toString(); 
} 

int brojGodina(Datum danasnji_datum) { 

    if (datum_rodjenja.getMesec() < danasnji_datum.getMesec()) { 
     return danasnji_datum.getGodina() - datum_rodjenja.getGodina(); 
    } 

    else if (datum_rodjenja.getDan() <= danasnji_datum.getDan() && 
      datum_rodjenja.getMesec() == danasnji_datum.getMesec()) { 
     return danasnji_datum.getGodina() - datum_rodjenja.getGodina(); 
    } 

    else 
     return danasnji_datum.getGodina() - datum_rodjenja.getGodina() -1 ; 

} 

}

+1

Welcher Fehler genau? –

+0

Entschuldigung, die Datei wurde gerade bearbeitet. Eclipse erscheint nur am Anfang der Datei: 'Der Typ OsobaDatum muss die geerbte abstrakte Methode implementieren. – monolith937

+0

1. Bitte fügen Sie die Fehlermeldung hinzu. 2. Wenn das Problem ist, dass "OsobaDatum" "int brojGodinaOsobe" implementieren muss, liegt das daran, dass die nächstliegende Methode, die der Code zu haben scheint, "int brojGodina" (Datum danasnji_datum) ist, was nicht derselbe Name ist. – KevinO

Antwort

2

Der Name der abstrakten Methode ist brojGodinaOsobe() und es sieht aus wie Sie nur eine Methode implementiert genannt brojGodina(). Fügen Sie die Osobe hinzu und Sie sollten OK sein.

+0

Oh Gott, es scheint, dass das der Fall war. Mein schlechtes, zu viel Code für heute gesehen. – monolith937

2

Es sieht so aus, als ob Sie nicht die Methode brojGodinaOsobe(Datum danasnji_datum); von Super-Klasse überschreiben.

Ändern Sie brojGodina(Datum danasnji_datum) zu brojGodinaOsobe(Datum danasnji_datum) in der OsobaDatum-Klasse.

Grüße.

Verwandte Themen