2017-08-14 5 views
-1

Programm 1implem ist nicht abstrakt und enthebt nicht abstrakte Methode endstand() in Verlängerung Schnittstellen

interface java{ 
    public void setHomeTeam(String name); 
    public void setVisitingTeam(String name); 
} 

Programm 2

interface extension extends java { 
    public String HomeTeamScored(); 
    public String VisitingTeamScored(); 
    public String FinalScore(); 
} 

Programm 3

public class implem implements extension{ 
    private String Home; 
    private String Visit; 

    public String HomeTeamScored(){ 
     return Home; 
    } 

    public String VisitingTeamScored(){ 
     return Visit; 
    } 

    public void setHome(String Home){ 
     this.Home = Home; 
    } 

    public void setVisit(String Visit){ 
     this.Visit = Visit; 
    } 
} 

Programm 4

public class compilation{ 
    public static void main(String [] args){ 
     implem implement = new implem(); 

     implement.setHome("Nihon"); 
     implement.setVisit("Chuugoku"); 

     System.out.println(""+implement.HomeTeamScored()); 
     System.out.println(""+implement.VisitingTeamScored()); 
    } 
} 

Das sind meine Programme für Schnittstellen erstrecken und ich den Fehler:

implem is not abstract and does not override abstract method FinalScore() in extension public class implem implements extension{ ^ 1 error

Process completed.

+1

Was ist mit der Fehlermeldung nicht klar ist, Sie? Implementieren 'FinalScore()' – Eran

+0

Fehler ist klar, Sie haben 'FinalScore()' in Ihrer 'implem' Klasse nicht überladen. Überschreibe es also und dein Programm würde funktionieren. –

+0

und folgen Sie bitte Java Namenskonventionen –

Antwort

0

Sie eine Definition einer Schnittstelle Java finden [site]

Es sagt

If your class claims to implement an interface, all methods defined by that interface must appear in its source code before the class will successfully compile

Also, Ihre implem Klasse alle Interface-Methoden von Java implementieren muss und sein Kind Klassenerweiterung.

Ihre implem Klasse haben die Regel zu folgen, so dass es aussieht wie folgt

public class implem implements extension { 
    private String Home; 
    private String Visit; 

    @Override 
    public String HomeTeamScored() { 
     return Home; 
    } 

    @Override 
    public String VisitingTeamScored() { 
     return Visit; 
    } 

    @Override 
    public void setHomeTeam(String name) { 

    } 

    public void setHome(String Home) { 
     this.Home = Home; 
    } 

    public void setVisit(String Visit) { 
     this.Visit = Visit; 
    } 

    @Override 
    public void setVisitingTeam(String name) { 

    } 

    @Override 
    public String FinalScore() { 

     return null; 
    } 
} 
+0

danke. aber warum können 'public void setHome (String Home)' und 'public void setVisit (String Visit)' nicht auf dem letzten Teil stehen, den ich nach dem letzten '@ Override' bedeute? – Tsuna

+0

Keine besondere Bedeutung .. Sie können es mit jeder Bestellung tun, wenn ich verstehe, was Sie richtig meinen. – tommybee

0

Weil Sie ‚Erweiterung‘ setzen Sie alle Methoden in der Schnittstelle Sie

Public String FinalScore(); 
hinzufügen müssen implementieren müssen

Zu Ihrer Klasse

+0

Nein müssen Sie eine Methode hinzufügen, die die Signatur von 'Public String FinalScore();' - aber ich verstehe, was du meinst –

+0

'öffentliche Klasse implementieren implementiert Erweiterung { \t private String Home; \t private String Besuch; \t private String Finale; \t \t öffentliche Zeichenfolge HomeTeamScored() { \t \t zurück Home; \t} \t \t public String VisitingTeamScored() { \t \t Rückkehr Besuch; \t} \t öffentliche String FinalScore() { \t \t Rückkehr Final; \t} \t \t public void sethome (String Home) { \t \t dies.Zuhause = Zuhause; \t} \t öffentlich void setVisit (String Visit) { \t \t this.Visit = Besuch; \t}} ' jetzt bekomme ich implem nicht abstrakt ist und überschreibt nicht abstrakte Methode setVisitingTeam (String) in Java sorry ich bin ziemlich neu hier – Tsuna

0

Ihre nicht abstrakte Klasse Implementierung implementiert nicht alle Methoden von Schnittstellen. Public String FinalScore() ist eine solche Methode.

+0

' public class implem implementiert Erweiterung { \t private String Heim; \t private String Besuch; \t private String Finale; \t \t öffentliche Zeichenfolge HomeTeamScored() { \t \t zurück Home; \t} \t \t public String VisitingTeamScored() { \t \t Rückkehr Besuch; \t} \t öffentliche String FinalScore() { \t \t Rückkehr Final; \t} \t \t public void sethome (String Home) { \t \t this.Home = Start; \t} \t öffentlich void setVisit (String Visit) { \t \t this.Visit = Besuch; \t}} ' jetzt bekomme ich implem nicht abstrakt ist und überschreibt nicht abstrakte Methode setVisitingTeam (String) in Java leid, dass ich ziemlich bin neu hier – Tsuna

Verwandte Themen