Вам нужно только реализовать методы из интерфейса, которые не были реализованы в абстрактном классе, который является суперклассом для вашего класса, где вы пытаетесь реализовать методы.
Но, похоже, я вижу одну проблему в вашемКласс проверки.
Ваш интерфейс объявляет этот метод,
Double salary();
Где, как и в классе проверки, вы реализуете этот метод,
public double sal()
Так что на самом деле это не такреализовать метод из интерфейса.Вы должны сделать это так же, как в интерфейсе.
Просто создайте метод в своем классе Check следующим образом:
public Double salary()
{
return 25000.00;
}
При реализации / переопределении метода из суперкласса / интерфейса вы должнывсегда используйте аннотацию @Override, поэтому, если какая-либо сигнатура вашего метода будет отличаться, она сразу же запросит у вас ошибку.И да, если вы снова объявите метод names () в своем подклассе Check, он переопределит метод в абстрактном классе. Вы можете сделать что-то подобное в своем классе,
abstract class GetNames implements xxx
{
@Override
public String names()
{
return "Ravi";
}
}
class Check extends GetNames
{
@Override
public int numbers()
{
return 3;
}
public double sal()
{
return 25000.00;
}
@Override
public Double salary() {
return sal();
}
@Override
public String names() { // this overrides names() method in GetNames class
return "Check";
}
}