Подтвердить что ты не робот

Что такое прямые и косвенные подклассы?

Я просматривал документацию по разработке Android и увидел следующее:

public abstract class Buffer
extends Object

Known Direct Subclasses:
ByteBuffer, CharBuffer, DoubleBuffer, FloatBuffer, IntBuffer, LongBuffer, ShortBuffer

Known Indirect Subclasses:
MappedByteBuffer

Buffer - это абстрактный класс, создание которого невозможно. Он наследует (расширяет) Object.

Но меня смущают прямые и косвенные подклассы. Моим лучшим предположением будет: прямое расширение непосредственно из суперкласса. Косвенный расширяется от суперкласса, который напрямую расширяет рассматриваемый класс.

Большое спасибо за любые предложения,

4b9b3361

Ответ 1

Вы правы. Известная прямая связь подразумевает, что класс является непосредственным предком. Известная в-прямом отношении подразумевает, что класс, как известно, является подклассом, но на самом деле он может быть на несколько уровней ниже родительского.

Ответ 2

Данный class A:

class B extends A // B is direct subclass of A
class C extends B // C is indirect subclass of A
class D extends C // D is indirect subclass of A

Вы поняли.


Другой способ взглянуть на это - использовать этот граф цепочки наследования (A является суперклассом, остальные наследуют):

A->B->C->D

B является прямым подклассом A, остальные являются косвенным подклассом A.