Как работает расширение внешнего класса в 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;
    ...
}
Другие вопросы по тегам