Что такое прямые и косвенные подклассы?
Я просматривал документацию по разработке Android и увидел следующее:
public abstract class Buffer
extends Object
Known Direct Subclasses:
ByteBuffer, CharBuffer, DoubleBuffer, FloatBuffer, IntBuffer, LongBuffer, ShortBuffer
Known Indirect Subclasses:
MappedByteBuffer
Buffer
- это абстрактный класс, создание которого невозможно. Он наследует (расширяет) Object
.
Но меня смущают прямые и косвенные подклассы. Моим лучшим предположением будет: прямое расширение непосредственно из суперкласса. Косвенный расширяется от суперкласса, который напрямую расширяет рассматриваемый класс.
Большое спасибо за любые предложения,
Ответы
Ответ 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.