2016-04-03 14 views
-2

Hatayı almayın, neden olduğunu anlayamıyorum, soyut yöntem uygulanan uygulanır. Genel anahtar kelimeyi eklemeyi denedim, ancak bu hiç yardımcı olmadı. İnternette soyut yöntemle ilgili örnekler okudum, ancak bunların çoğu void.Soyut yöntem hatası uygulamalıdır, ancak var

soyut sınıfı:

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

Ve alt sınıf:

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

Tam olarak hangi hata? –

+0

Üzgünüm, şimdi dosyayı düzenledim. Eclipse sadece dosyanın üst kısmına girmeye devam eder: 'OsobaDatum, kalıtsal soyut yöntemi ' – monolith937

+0

uygulamalıdır. Lütfen hata mesajını ekleyin. 2. Sorun, 'OsobaDatum'un int brojGodinaOsobe' öğesini uygulaması gerektiğiyse, kodun sahip olduğu en yakın yöntemin, aynı ada sahip olmayan' int brojGodina (Datum danasnji_datum) 'olmasıdır. – KevinO

cevap

2

soyut yöntemin adı brojGodinaOsobe() olduğunu ve sadece brojGodina adlı bir yöntem uygulamaya benziyor(). Osobe ekleyin ve tamam olmalısınız.

+0

Ah tanrını gönderdiğinden emin olun, öyle görünüyor. Kötü, bugün için çok fazla kod görüldü. – monolith937

2

Super sınıfından brojGodinaOsobe(Datum danasnji_datum); yöntemini geçersiz kılmıyorsunuz gibi görünüyor.

OsobaDatum sınıfındaki değerini olarak değiştirin.

Saygılarımızla.

İlgili konular