2011-12-16 7 views
4

Я думаю, что это означает, что через концепцию полиморфизма тип переменной может быть объявлен как тип интерфейса. Для экс: если Animal является интерфейсом, можно закодировать следующим образом:Что значит сказать, что интерфейс также является типом?

Animal simba = new Lion(); 

Я правильно в моем понимании это? Спасибо за любую помощь.

+1

Да, правильно, если предположить, что класс 'Lion' реализует интерфейс' Animal'. – aroth

+1

Я не уверен, что вы ищете здесь. Ответ в настоящее время «да». –

+0

Хорошо выглядит для меня. 1+ голосов –

ответ

1

Каждый объект имеет тип (и значение) * Есть много типов:. Примитивные типы (как int), типы классов (как string), перечислений, массивы (и, возможно, я забываю некоторые).

Термин «интерфейс» относится к особому роду типа класса:. Это класс, который не имеет объектов члена (безопасные константы) и только публичные методы, все из которых являются абстрактными **

Итак: интерфейс - это особый класс, который, в свою очередь, является особым типом. Таким образом, интерфейсы являются типами. В вашем примере оба Animal и Lion являются типами, и один из них конвертируется в другой.

*) Непосредственно тип говорит: «Какова структура этого», а значение говорит «что такое содержание». Тип 5 является int, и его значение ... ну, 5.

**) Это позволяет наследовать от нескольких интерфейсов , в то время как это не представляется возможным в Java, чтобы наследовать от множества общего классы.

3

interface может действовать аналогично superclass на Java, поскольку он может принимать тип его реализации.

В вашем примере, в частности, вы определяете Animal как interface, который Lion реализует.

Из-за этого вы можете создать Animal типа Lion. Код будет выглядеть следующим образом:

interface Animal { 
    //do interfacing stuff 
} 

class Lion implements Animal { 
    public Lion() { 
    //... 
    } 
    //do implementing stuff 
} 

class Driver { 
    Animal simba = new Lion(); // This works because of polymorphism. 
} 

Вы правильно, хотя, говоря, что это является примером polymorphism.

Смежные вопросы