2013-02-20 3 views
0

У меня есть запрос в java, так как Object class является родительским классом для всех, я хочу знать, что класс Object неявно расширяется каждым классом в java.Что касается расширения классов

Например: если я делаю класс объектов B тогда я расширяю класс A что это нормально, так как в Java, класс может распространяться только один класс в большинстве, но так как мой класс B неявно расширил Object класс, то как можно он расширяет класс A? Пожалуйста, порекомендуйте.

+2

'B' extends' A' extends 'Object' –

+1

' Object' всегда будет самой низкой частью в вашей иерархии классов. –

+0

Обратите внимание на [FAQ] (http://stackoverflow.com/faq) о том, как задавать вопросы здесь. Когда вы расширяете класс в Java, вы также расширяете Object-класс, так как это часть вашего базового класса. Если вы не расширяете какой-либо класс, а создаете новый, вы неявно расширяете Object. –

ответ

0

Только если родитель не указан, он неявно наследует от Object, в противном случае он наследует только от указанного родителя.

Примечание стороны:

Это позволило:

C 
    | 
    A 
    | 
    B 

В приведенном выше случае, замените C с Object, чтобы быть в соответствии с тем, что вы просите.

Это не допускается:

C A 
\/
    B 

Наследство может быть столь же глубоко, как вы хотите, чтобы это было, но один объект не может иметь несколько родителей.

0

Думайте об этом как о генеалогическом древе, где у индивидуумов есть только один родитель. У каждого человека есть только один родитель, но все предки этого родителя также являются предками индивида. Это то, что называется, когда все классы расширяются Object: он является самым отдаленным предком всех, хотя и является единственным прямым предком (родителем) тех классов, которые объявлены с extends Object или вообще без объявления extends.

0

Я думаю, вы знаете концепцию, но вы должны быть немного смущены. Подумайте о дереве. Класс объекта - это корень этого дерева. Он имеет листья и другие узлы между ними. Независимо от того, как будет создана ваша иерархия классов, в конечном итоге это будет Object, потому что ее корень таков. Таким образом, вы можете расширить любой класс (не абстрактный или интерфейс), не думая о классе Object. Потому что расширение Object будет сделано автоматически для вас.

-1

Предлагаемая информация, ключевое слово EXPLICIT. Вы можете EXPLICITLY продлить только один класс. Но если вы не сделаете этого, Java неявно расширит ваш класс классом Object. Если вы сделали это, объект должен находиться где-то в иерархии унаследованного класса.

+1

Вы как бы повторяете то, что было сказано в других ** 4 ** ответах. – Dukeling