问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java中super关键字是干嘛的

发布网友 发布时间:2022-04-25 05:46

我来回答

5个回答

懂视网 时间:2022-04-23 14:52

收藏整理了ES6 Class 中的 super 关键字,本文将分享给大家,非常不错,具有参考借鉴价值,需要的朋友参考下吧,希望能帮助到大家。

以下只是个人的学习笔记:

super这个关键字,既可以当作函数使用,也可以当作对象使用。在这两种情况下,它的用法完全不同。

1、当作函数使用


注意,super虽然代表了父类A的构造函数,但是返回的是子类B的实例,即super内部的this指的是B,因此super()在这里相当于A.prototype.constructor.call(this)。


可以看到,在super()执行时,它指向的是子类B的构造函数,而不是父类A的构造函数。也就是说,super()内部的this指向的是B。

2、当作对象使用

在普通方法中,指向父类的原型对象;在静态方法中,指向父类。


上面代码中,子类B当中的super.c(),就是将super当作一个对象使用。这时,super在普通方法之中,指向A.prototype,所以super.c()就相当于A.prototype.c()。

通过super调用父类的方法时,super会绑定子类的this。


上面代码中,super.s()虽然调用的是A.prototype.s(),但是A.prototype.s()会绑定子类B的this,导致输出的是2,而不是1。也就是说,实际上执行的是super.s.call(this)。

由于绑定子类的this,所以如果通过super对某个属性赋值,这时super就是this,赋值的属性会变成子类实例的属性。


上面代码中,super.x赋值为3,这时等同于对this.x赋值为3。而当读取super.x的时候,读的是A.prototype.x,所以返回undefined。

注意,使用super的时候,必须显式指定是作为函数、还是作为对象使用,否则会报错。


上面代码中,console.log(super)当中的super,无法看出是作为函数使用,还是作为对象使用,所以 JavaScript 引擎解析代码的时候就会报错。这时,如果能清晰地表明super的数据类型,就不会报错。

最后,由于对象总是继承其他对象的,所以可以在任意一个对象中,使用super关键字。

热心网友 时间:2022-04-23 12:00

super关键词是调用父类方法和变量用的。如:
class Father {
public Father(){
}
public void out(){
System.out.print("class father!");
}
public void out(String a){
System.out.print("class father!");
}
......
}

class son {
super.out();//调用Father的out(){}方法
this.out();//调用son的out(){}方法
public void out(){
System.out.print("class father!");
}
......
}

热心网友 时间:2022-04-23 13:18

super 用法
:

public class Pelope {

int high;
public Pelope(String name,int age,String sex) {
//等等一些属性操作
}

private void setHigh(int hight) {
this.high=high;
}
//等等
}

public Boy extends Pelope {
public Boy(String name,int age) {
super(name,age,sex); //这里相当于合用父类中的构造函数

}
//可以这样使用父类中主方法或变量,,super.setHigh(),,
super.变量;;
不多写了,,差不多是这样吧,,

还有在泛类中也有一些应用,,你就自己看看,不懂再问吧

呵呵

热心网友 时间:2022-04-23 14:53

super表示当前正要调用该类它爸的变量或方法。

热心网友 时间:2022-04-23 16:44

5:3
6:3
7:3
8:4
9:1
10:2
11:4
12:4
13:2
14:3
15:1
16:2
17:3
18:4
19:2
20:3
21:1,3 多选
22:2
23:1
24:1
25:3
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
梦见穿堂风 没有爱情我们一样会快乐的对吗 没有爱情的人会快乐么? 解除合同的效力有什么 合同解除会产生什么法律效力 合同解除后,哪些条款仍具效力? 合同解除产生哪些效力呢 民法典中合同解除产生哪些效力 解除合同的效力有哪些 济南七中学校怎么样 关键字super在java中的主要作用是什么,如何使用? 为什么我安装了Auto CAD之后打不开?它的文件是.bak形式 你说你解决了,那个BAK文件 怎么打开的啊?我还是打不开! 38厘米的方向盘套能用在39厘米的方向盘吗? 衡阳雁西桥边石鼓往39度方向右转弯压实线直行,算违规吗 维度39°,经度28°,可以找到这个地方的正确方向吗 39点握方向盘,打半圈以上不到270°用单手吗? 如图,点b在点c北偏东39°方向,点b在点a北偏西23°方向,则∠abc的度数为 方向盘是圆的为什么还要用三九点 纬度方向555m,经度方向39dushi什么意思 想知道:中国 东经122度南纬39度在东经121度南纬38度的哪个方向? 北纬39度纬线经过中国哪几个地方? 5. 如图,点 b 在点 c 北偏东 39 方向,点 b 在点 a 北偏西 23 方向,则 39握法方向盘打270度怎样打 方向盘210点握法与39点握法各有什么优势 汽车方向盘保持39度是什么意思? 39握法方向盘打180度怎样回正 我开车不喜欢39点打方向,我一般喜欢送方向,和拉方向,但是我一般还是放在39点上? 汽车三九点方向怎么打哪位师傅知道? 东城区初中入学电脑派位结束,是可以查结果了吗? Java里面super关键字是在子类对象内部指代其父类对象的引用吗? JAVA中的super代表什么意思?? java构造方法中super()的作用是什么? java中this和super关键字代表什么?以及它们的三种作用 Java中的super关键词,说白了就等同于“调用父类构造方法”? 苏州教师证培训学院哪家好 java 中this和super关键词怎么用 苏州教师资格证有培训的吗? Java中的super 五行缺金火的女孩是不是将来没有钱财啊? java 编程 this 和 super 关键字怎么理解比较好? java this关键字和super关键字的区别? 请问苏州哪里有正规一点专业一点培训教师资格证的啊?一定要正规的哦! java中this和super关键字到底是啥意思?求深刻讲解 苏州园区这边教师资*哪里培训的好?有经验的朋友可以帮忙推荐一下? JAVA中super的作用? JAVA中的super() 苏州园区附近有什么比较好的教师资格证培训机构吗? 我是一名苏州一所学校的大专学生 想考教师证 要怎么才能考呢 要出去培训么 有什么好的地方么 大概多少钱 java super的用法