Если я правильно настроился на волну тс то разжую доступными словами.
Для начала нужно чтобы было правильное понимание происходящего в java а именно:
1) в java всё есть объект, вот прям все все* . Это означает что абсолютно что угодно отнаследовано от класса Object
2) есть(могут быть) различия того что именно содержится в классе в исходном коде и коде при выполнении программы а также после ее компиляции. Если простым языком то это может предстать так
- в коде у класса есть только метод foo()
- после компиляции оказывается что в нем после некоторых событий типа аннотаций появляется еще и метод bar(). Тут важно то что он появится * у всех инстансов от этого класса
- при выполнении может оказаться так что метод foo() будет подменен другим кодом. Это уже рефлексия.
- при выполнении может оказаться что у НЕКОТОРЫХ инстансов класса внутри окажется еще и метод mymethod(). Т.е. не у всех а именно у некоторых инстансов.
3) при выполнении программы * для абсолютно всего ВСЕГДА создается явно или не явно инстанс, даже для статического класса. Т.е. ты в коде может и не создавал инстанс явно через new, это было сделано рантаймом гдето в недрах явы!
4) статический класс отличается от обычного только тем что статический всегда указывает только и только* на 1 единственный инстанс
5) super() , означает что будет вызов метода\конструктора РОДИТЕЛЯ
6) super , БЕЗ СКОБОК, означает переход к переменным РОДИТЕЛЯ. Также можно вызвать и метод РОДИТЕЛЯ.
7) this всегда указывает именно на текущий инстанс класса. Другими словами представь что класс это область видимости и когда ты пишешь this ты явно говоришь что это относится именно к этому инстансу а не классу.
*гуру молчите что это не совсем так в особенных фундаментальных моментах
инстанс - экземпляр класса, т.е. грубо говоря он создается через new явно или не явно
Если всеравно непонятно то могу набросать примером простеньких. Также рекомендую почитать
это и примеры
тут
Обобщая выше сказанное(с нюансами):
- в java ВСЁ и ВСЕГДА это инстанс какого либо класса
- исходя из пункта выше ВСЕГДА на любой класс существует хотябы один инстанс
- исходя из пункта выше часто бывают случаи когда необходимо обратиться к переменной\методу родителя через super. Также возникают необходимости обратиться к методу\переменной именно этого конкретного инстанса или передать этот инстанс куда либо дальше не имея ссылки на этот инстанс.