В чем разница между этими двумя кодами относительно интерфейса? - PullRequest
0 голосов
/ 06 июля 2019

Я сейчас изучаю Java. Я просто не понимаю, как использовать интерфейс, и я действительно смущен этим.

Эти два кода возвращают один и тот же ответ, тогда какой здесь интерфейс?

interface Jumpable {
abstract int maxDistance();
}
class Animal implements Jumpable {
public int maxDistance() {
return 100;
}
}
public class Forest {
public static void main(String args[]) {
Animal lion = new Animal();
System.out.println(lion.maxDistance());
}
}
class Animal {
public int maxDistance() {
return 100;
}
}
public class Forest {
public static void main(String args[]) {
Animal lion = new Animal();
System.out.println(lion.maxDistance());
}
}

1 Ответ

2 голосов
/ 06 июля 2019

В том состоянии, в котором сейчас находится ваш код, нет никакой разницы, но дело не в этом.Далее вам нужно будет что-то делать со своими животными, не зная, какие животные у вас есть и что они могут делать.Предположим, вы хотите разделить своих животных на млекопитающих, птиц и насекомых.Некоторые из них могут прыгать, но не другие.Это будет очень уродливый код, если вы создадите определенные классы или атрибуты для млекопитающих, которые могут прыгать и т. Д. Если вы вместо этого создадите интерфейс, у вас будет много вариантов.Вы можете создать список животных, которые могут прыгать, а затем сказать им прыгать, независимо от их типа.Позже вы можете добавить крик своим животным.Просто добавьте интерфейс для этого.

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