super 为什么代表的不是父类对象呢?它的实现原理是怎么样的呢?

super 为什么代表的不是父类对象呢?它的实现原理是怎么样的呢?

在 JS 中 super 也是借鉴了 Java 的 super。可是 console.log( super ) 却会报错,在 Java 中 System.out.print(super)也报错。那么这个 super 到底是个啥,它的实现原理在 Java 中 和 JS 中有什么区别呢。 如果是指向引用的话,在 Java中为什么直接输出 super 会是非法的 token 呢?

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

您好,Java中super主要存在于子类方法中,用于在子类中指向父类对象;访问父类的属性;访问父类的方法;访问父类的构造方法。

JS中super关键字用于访问和调用一个对象的父对象上的函数。

JS和Java是两种语言,不需要比较super的区别。祝学习愉快!

  • 小学生6年级 提问者 #1
    你这个就是无脑重复了一遍啊。那咱们先不说js。那为什么java中不能system.out.print(super) 呢
    2018-09-18 17:41:32
  • 小学生6年级 提问者 #2
    或者从语法唐的角度来理解js的话。比如说调用父类方法,那就是parent.call,这样子理解的话不能打印出super也说得通。可是java中的机制是怎么样的呢。有没有给力点的助教回答下。我之前在java区还没提问过。但是稍微看了其他人的提问,明显感觉没有前端路径的助教给力啊。?
    2018-09-18 17:49:21
  • 好帮手慕珊 回复 提问者 小学生6年级 #3
    this是当前对象的引用,而super并不是父类对象的引用,他只是一个指示编译器调用父类方法的特殊关键字,所以它不能被输出。祝学习愉快!
    2018-09-18 18:20:47
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师