Помогите, пожалуйста, с теорией. Можно и практические примеры.
Разбирал 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 сами по своему усмотрению), но уже никому этого не покажем -- если нам предложат пообедать другие , то мы согласимся только при наличии тарелки и вилки.
Комментариев нет:
Отправить комментарий