Доброго дня всем. Начал изучать такую интересную тему как интерфейсы. Некоторые задачи выполняются чисто интуитивно, но не совсем понятно как что работает. Ниже выкладываю код программы, которая успешно прошла проверку на сервере.
/* Исправление ошибок
1. Переделай наследование в классах и интерфейсах так, чтобы программа компилировалась и продолжала делать то же самое.
2. Класс Hobbie должен наследоваться от интерфейсов Desire, Dream.
*/
public class Solution
{
public static void main(String[] args) throws Exception
{
System.out.println(Dream.HOBBIE.toString());
System.out.println(new Hobbie().INDEX);
}
interface Desire
{
}
interface Dream //implements Hobbie
{
static Hobbie HOBBIE = new Hobbie();
}
static class Hobbie implements Desire, Dream
{
static int INDEX = 1;
@Override
public String toString()
{
INDEX++;
return "" + INDEX;
}
}
}
Хотелось бы описать как я понимаю её, но мысли очень разбросаны. Не могли бы вы в 2х словах описать работу данной программы, а именно что происходит в этом интерфейсе:
interface Dream //implements Hobbie
{
static Hobbie HOBBIE = new Hobbie();
}
Спасибо.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ