Как работает расширение внешнего класса в Java
Ссылаясь на код в этом вопросе, я хотел узнать, как работает расширение внешнего класса. Я имею в виду, как класс (внутренний класс) может иметь свое определение в двух местах (во внешнем классе, потому что он является внутренним классом и сам по себе из-за расширения внешнего класса). Что входит внутрь, когда это сделано.
Спасибо
Код
public class Something {
private int y;
class IsSomething extends Something {
public void print() {
System.out.println("123");
}
}
}
1 ответ
Решение
Внутренний класс имеет ссылку на экземпляр своего внешнего класса. Это отношения.
Если он расширяет свой внешний класс, у него также есть отношение is- with его внешний класс.
Так что это эквивалентно следующим двум классам верхнего уровня:
public class Foo {
...
}
public class Bar extends Foo {
private Foo outerFoo;
...
}