Интерфейс реализован без всяких методов. Почему не ошибка компиляции? - PullRequest
0 голосов
/ 12 июля 2020

Ниже приведен код, заданный в викторине, ответ на вопрос был «Код успешно компилируется». Но класс DoStuff не реализует все методы интерфейса, так почему же нет ошибки?

    interface DoStuff2 
    { 
        float getRange(int low, int high);
    }
    interface DoMore
    { 
        float getAvg(int a, int b, int c); 
    } 

    abstract class DoAbstract implements DoStuff2, DoMore 
    { } 

    class DoStuff implements DoStuff2 
    { 
        public float getRange(int x, int y) 
        { 
            return 3.14f; 
        }
    } 
    interface DoAll extends DoMore 
    {
         float getAvg(int a, int b, int c, int d);
    } 

1 Ответ

1 голос
/ 12 июля 2020

В вашем коде вы можете видеть это, ссылаясь на класс DoStuff:

class DoStuff implements DoStuff2 

Это означает, что ваш класс DoStuff должен реализовывать все методы в интерфейсе DoStuff2. Единственный метод в DoStuff2 - это getRange, который реализован в DoStuff.

class DoStuff implements DoStuff2 
{ 
    public float getRange(int x, int y) 
    { 
        return 3.14f; 
    }
} 

Остальные классы не влияют на класс DoStuff, поскольку только реализует класс DoStuff2.

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