2015-04-04 1 views
2

В Java говорят, что Multiple Inheritance не поддерживается. Также факт, что каждый класс в Java расширяет класс Object. Поэтому, если я пишу:Множественное наследование в Java разрешено с классом Object?

public class ThreadInstance extends Thread { 
} 

Как это скомпилировать? ThreadInstance здесь фактически расширяет Thread, а также Object. Разве это не множественное Наследование здесь.

ответ

1

По множественному наследованию вы должны понимать наследование нескольких классов в одно и то же время, например. это невозможно создать

public class ThreadInstance extends Thread, Object { 
} 

потому что иерархия классов будет выглядеть следующим образом:

ThreadInstance 
^   ^
Thread  Object 

Когда вы определяете ThreadInstance, как вы сделали, то ThreadInstance наследует Object тоже, но это первой наследуется нить.

ThreadInstance 
    ^
    Thread 
    ^
    Object 

Там нет множественного наследования.

0

Ваш класс расширяет Thread но Thread уже распространяется Object так что еще одного наследования, как это следует той же линии наследования

Object является неявно наследуется каждым классом. В вашем классе ThreadInstanceThread является явно унаследовано.

Таким образом, каждый класс Java, кроме Object, должен иметь суперкласс. Нет ничего особенного в том, что касается неявного наследования, просто там можно уменьшить шаблонный код.

0

Ваш класс, который расширяет этот другой класс, но также расширяет Object, поэтому вы все еще находитесь в одной строке наследования, а не в двух.

Например. ThreadInstance расширяет Thread, но Thread в свою очередь расширяет Object таким образом, я говорю, что ThreadInstance расширяет Object.