Страницы

Поиск по вопросам

понедельник, 25 ноября 2019 г.

Что собой представляют this и super


Помогите, пожалуйста, с теорией. Можно и практические примеры.

Разбирал this и super. Что я понял: this - это ссылка на самого себя. То есть я н
могу из другого класса обращаться через this. Если пропишу в другом классе, то получу еще одну ссылку на класс, но не другой, а снова себя. 

А super - это получение методов предка, но только последнего, а не предка его предка. Так ли это? Или я где-то недопонял? 
    


Ответы

Ответ 1



super - это указание компилятору обратиться невиртуальным образом к родительскому методу на текущем объекте (this). Именно поэтому его нельзя сохранить в переменную.

Ответ 2



this - это ты. super - это твоя мамка. Если ты говоришь this и super ты имеешь виду себя и свою мамку. Если я говорю this и super - я указываю на себя и на свою мамку, а никак не на тебя и не на твою мамку (это если моя и твоя мамка не один и тот-же человек).

Ответ 3



В соседнем ответе от @Xoxole представителями сообщества были обнаружены недостатки. А в частности, мать и ребёнок это разные объекты, а this и super -- один. Попытаюсь их исправить. this - это ты сейчас, т.е экземпляр человека взрослого, умеющего читать и писать super -- это всё что тебе осталось от себя в младенчестве, умеющего кушать с бутылочки Если ты говоришь this и super ты имеешь в виду себя и себя в детстве. Если я говор this и super -- я указываю на себя и себя в младенчестве, а никак не на тебя сейча или в детстве. Когда ты и я стали взрослыми людьми, мы переопределили способность кушать с бутылочки на способность кушать с тарелки вилкой. Но мы всё еще можем кушать с бутылочки (вызывать методы super сами по своему усмотрению), но уже никому этого не покажем -- если нам предложат пообедать другие , то мы согласимся только при наличии тарелки и вилки.

Комментариев нет:

Отправить комментарий