2015-03-21 1 views
2

Я готовлюсь к OCJP. Я встретил это заявление в книге Кэти Сьерра.Интерфейсы не являются частью иерархии объектов в Java. Зачем ? Они принадлежат к какой-то иерархии?

Интерфейсы не являются частью иерархии объектов в Java

Я просто интересно и вы хотите знать, почему?

ответ

1

Для точного определения бит: Интерфейс не является частью иерархии объектов, а это означает, что интерфейс, который не распространяется на другой, не имеет супертипа.

Однако экземпляр набраны как интерфейс всегда Object, иначе вы не смогли бы написать такие вещи, как:

interface MyInterface { //no supertype. 
} 
MyInterface var = new MyInterface(){}; 
var.toString(); //toString method is defined on Object class. 
+0

ли они направить (/ интерфейс Supertype по умолчанию)? –

+1

Нет, см. JLS: http://docs.oracle.com/javase/specs/jls/se8/html/jls-9.html#jls-9.1.3. Хотя каждый класс является расширением класса Object, существует ни один интерфейс, из которых все интерфейсы являются расширениями. – benzonico

1

, как вы знаете, interface не наследует от любого класса, поэтому он не может быть унаследован прямо или косвенно из Object класса, поэтому интерфейс не принадлежит Object иерархии, как и другие классы для примера строки, и т.д.

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