Насколько я правильно понял материал по лекции интерфейсы, то интерфейсы содержат методы, которые затем реализуются в каком-либо классе. В существующем интерфейсе ( Person) я вижу не методы, а классы, а именно User, Loser, Coder, Proger.
public interface Person {
class User implements Person {
void live() {
System.out.println("I usually just live.");
}
}
class Loser implements Person {
void doNothing() {
System.out.println("I usually do nothing.");
}
}
class Coder implements Person {
void writeCode() {
System.out.println("I usually write code.");
}
}
class Proger implements Person {
void enjoy() {
System.out.println("It's a wonderful life!");
}
}
Мне была бы понятна запись, если бы в интерфейсе Person было написано
void doNothing() {
System.out.println("");
}
А после, как вариант, в отдельном файле для класса User
class User implements Person {
void live() {
System.out.println("I usually just live.");
}
}
Александр
16 уровень
Здравствуйте! Поясните, пожалуйста, что тут написано.
Обсуждается
Комментарии (2)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Justinian Judge в Mega City One Master
15 мая 2021, 15:54полезный
это наиболее распространенный вариант использования интерфейсов, но не единственный.
Остальные варианты будешь узнавать либо на практике, как в этой задаче, либо и в теории и в задачах, как например будет на 18-20 уровнях когда будут рассказывать про маркерные интерфейсы, которые не содержат методов.
Интерфейс задает тип объекта, что и происходит в этом случае, задается некий общий тип, его можно было сделать абстрактным классом и наследоваться, можно сделать было интерфейс, в этом случае интерфейс выступает И супертипом И контейнером для классов.
Воспринимай как должное, что тебе показывают как интерфейсы МОГУТ использоваться. Никто не говорит "а теперь бери и используй это всегда", просто показывают так и эдак, а потом картинка сложится. Но для полноты картины сам понимаешь, разносторонний опыт только на плюс.
Подобную конструкцию не так часто увидишь в жизни, но ее можно увидеть, она есть, почему так, сложно сказать, здесь учебная задача, в реальной жизни это будут какие-то свои конкретные моменты.
Интерфейсы непростая тема, нужно И задачи решать И немного набить руку потом на изучении дополнительных технологий, когда ты увидишь прикладное их применение, тогда картинка обязательно сложится, на данном уровне от тебя больше требуется знать синтаксис и базовые вещи, хотя то, что ты задаешь вопрос, абсолютно правильно, есть вопрос - нужно прояснять.
+1
Ksenia Volkova Java Developer в DXC Master
15 мая 2021, 10:56полезный
Просто это учебная задача. В ней интерфейс Person нужен исключительно как общий родитель для остальных классов, а какого-либо поведения он не описывает.
+1