-1

program 1

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

program 2

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

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

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

These are my programs for extending interfaces and I get the error:

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

Process completed.

krlzlx
  • 5,752
  • 14
  • 47
  • 55
Tsuna
  • 21
  • 6

3 Answers3

0

Because you are implementing 'extension' you need to implement all the methods in the interface you need to add

Public String FinalScore();

To your class

MartinByers
  • 1,240
  • 1
  • 9
  • 15
  • No you need to add a method that matches the signature of `Public String FinalScore();` - but I understand what you mean – Scary Wombat Aug 14 '17 at 07:34
  • `public class implem implements extension{ private String Home; private String Visit; private String Final; public String HomeTeamScored(){ return Home; } public String VisitingTeamScored(){ return Visit; } public String FinalScore(){ return Final; } public void setHome(String Home){ this.Home = Home; } public void setVisit(String Visit){ this.Visit = Visit; }}` now I get implem is not abstract and does not override abstract method setVisitingTeam(String) in java sorry I'm pretty new here – Tsuna Aug 14 '17 at 07:48
0

Your non-abstract class implem is not implementing all the methods of interfaces. Public String FinalScore() is such one method.

nagendra547
  • 5,672
  • 3
  • 29
  • 43
  • `public class implem implements extension{ private String Home; private String Visit; private String Final; public String HomeTeamScored(){ return Home; } public String VisitingTeamScored(){ return Visit; } public String FinalScore(){ return Final; } public void setHome(String Home){ this.Home = Home; } public void setVisit(String Visit){ this.Visit = Visit; }}` now I get implem is not abstract and does not override abstract method setVisitingTeam(String) in java sorry I'm pretty new here – Tsuna Aug 14 '17 at 07:49
0

You can find a definition of a java's interface[site]

It says

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

So, your implem class must implement all interface methods from java and its child class extension.

Your implem class have to follow the rule so it looks like as follows,

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;
    }
}
tommybee
  • 2,409
  • 1
  • 20
  • 23
  • thank you. but why can't the `public void setHome(String Home)` and the `public void setVisit(String Visit)` be on the last part I mean after the last `@Override`? – Tsuna Aug 14 '17 at 08:05
  • Not a special meaning..you can do it with any order , if i understand what you mean correctly. – tommybee Aug 14 '17 at 08:14