2016-04-03 7 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を追加すればOKです。

+0

ああ、それはそうだったようです。私の悪い、今日はあまりにも多くのコードを見た。 – monolith937

2

SuperクラスのメソッドbrojGodinaOsobe(Datum danasnji_datum);をオーバーライドしていないようです。

OsobaDatumクラスのbrojGodina(Datum danasnji_datum)~brojGodinaOsobe(Datum danasnji_datum)に変更してください。

よろしくお願いいたします。

関連する問題