Как переопределить только несколько методов интерфейса? - PullRequest
0 голосов
/ 01 ноября 2018

Давайте предположим, что у меня есть интерфейс, который имеет несколько методов, таких как:

public interface Person {

    public void printName(String name);

    public int getAge(String name);

    public String getAddress();

}

Теперь класс Test, реализующий описанный выше интерфейс, подобный следующему:

public class Test implements Person{

}

Теперь затмение показывает мне ошибку и вынуждает меня добавлять невыполненные методы.

Теперь я хочу реализовать только printName() метод интерфейса Person в классе Test. Как мне это сделать. Я имею в виду, чтобы спросить, как реализовать только необходимый метод не все?

Примечание Я не хочу использовать абстрактный класс.

Ответы [ 3 ]

0 голосов
/ 01 ноября 2018

Если вы используете Java 8 или выше, вы можете использовать default ключевое слово для методов, которые вы не хотите реализовывать в классе реализации

public interface Person {

  public void printName(String name);

  public default int getAge(String name){
    return -1;
  }

  public default String getAddress(){
    return null;
   }
0 голосов
/ 01 ноября 2018

Если вы используете интерфейс, вы должны реализовать все методы из интерфейса. Лучше использовать абстрактные методы.

Пример:

abstract class Person {
    abstract void printName(String name);
    abstract int getAge(String name);
    abstract String getAddress();
}
0 голосов
/ 01 ноября 2018

Если класс Test реализует интерфейс Person, это означает, что он должен реализовывать все методы этого интерфейса.

Исключения:

  1. Если Test является абстрактным классом, ему не нужно реализовывать все методы Person, но любой конкретный подкласс Test должен будет реализовать остальные методы.

  2. Любые методы, для которых интерфейс Person содержит реализацию по умолчанию, не должны быть реализованы Test.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...