2016-04-03 74 views
-2

不斷收到錯誤,我似乎無法弄清楚爲什麼,抽象方法實施。我嘗試添加關鍵字public,但這根本沒有幫助。我已經閱讀了互聯網上關於抽象方法的例子,但其中大多數是void必須實現抽象方法的錯誤,但它的存在

抽象類:

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); 
} 

類和子類:

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

究竟是什麼錯誤? –

+0

對不起,剛剛編輯文件。 Eclipse只是在文件頂部彈出:「OsobaDatum類型必須實現繼承的抽象方法」 – monolith937

+0

1.請添加錯誤消息。 2.如果問題是'OsobaDatum'必須實現'int brojGodinaOsobe',這是因爲代碼似乎最接近的方法是'int brojGodina(Datum danasnji_datum)',它不是同一個名字。 – KevinO

回答

2

抽象方法的名字是brojGodinaOsobe(),它看起來像你只實現了一個名爲brojGodina方法()。添加Osobe,你應該沒問題。

+0

哦,上帝,似乎是這樣。我的不好,今天看到了太多的代碼。 – monolith937

2

看起來你並不是超越Super class的方法brojGodinaOsobe(Datum danasnji_datum);。在OsobaDatum類中將brojGodina(Datum danasnji_datum)更改爲brojGodinaOsobe(Datum danasnji_datum)

問候。

相關問題