继续得到错误,我似乎无法弄清楚为什么,抽象方法是实现的。我尝试添加关键字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 ;
}
}
答案 0 :(得分:2)
抽象方法的名称是brojGodinaOsobe(),看起来你只实现了一个名为brojGodina()的方法。添加Osobe,你应该没问题。
答案 1 :(得分:2)
看起来你没有覆盖Super class的方法brojGodinaOsobe(Datum danasnji_datum);
。
在OsobaDatum课程中将brojGodina(Datum danasnji_datum)
更改为brojGodinaOsobe(Datum danasnji_datum)
。
问候。