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

java中的super()是什么

发布网友 发布时间:2022-04-22 07:05

我来回答

10个回答

热心网友 时间:2022-04-18 21:05

要说super就先要说this。
"this",作为一个特殊的关键字,它的规则如下:
1。可以表示构造函数传递。this(a,b)表示调用另外一个构造函数。这里面的this就是一个特殊语法,不是变量,没有什么类型。
2。可以在一个类的非static成员内部使用,表示当前这个对象。此时,this就是一个final的普通变量,它有静态类型,就是这个类C本身;它有动态类型,就是当前这个对象的类型。你可以对它调用成员函数,把它传递给别的函数,等等等等。只要一个C类型的final变量可以出现的地方,它就可以出现。

"super"。它和"this"类似,但是也有不同的地方。
1。表示调用父类的构造函数。也是一个特殊语法,不是变量,没有什么类型。

2。可以在一个类的非static成员内部使用。比如super.method()。
但是,注意,这个super.method()只是长得跟some_var.method()一样,一个语法糖而已。实质上,"super"根本不是一个变量。

为什么不是?因为如果是就坏了。java里面有一个金科玉律:任何public非static函数的调用都是多态的。
所以,如果super是个变量,也指向当前对象,那么,不管super的静态类型是什么super.method()必然调用的是子类的那个版本,而不会是我们期望的,静态地选择父类的那个版本。

所以,你只要把super.xxx看成一个特殊的语法,比如理解为“super::xxx”就好了。

既然super不是一个变量,那么不能把它象一个普通变量那样"==",或者传递给某个函数就看起来很正常了,是么?何况,你其实也用不着它,有this你这些要求就都可以办到了。

3。super的另外一个作用是调用父类的protected函数。只有通过"super"这个魔咒,我们才能操作父类的protected成员,别无它法。

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

1)super(参数):调用基类中的某一个构造函数(应该为构造函数中的第一条语句)
2)this(参数):调用本类中另一种形成的构造函数(应该为构造函数中的第一条语句)
3)super: 它引用当前对象的直接父类中的成员(用来访问直接父类中被隐藏的父类中成员数据或函数,基类与派生类中有相同成员定义时如:super.变量名 super.成员函数据名(实参)
4)this:它代表当前对象名(在程序中易产生二义性之处,应使用this来指明当前对象;如果函数的形参与类中的成员数据同名,这时需用this来指明成员变量名)

5)调用super()必须写在子类构造方法的第一行,否则编译不通过。每个子类构造方法的第一条语句,都是隐含地调用super(),如果父类没有这种形式的构造函数,那么在编译的时候就会报错。
   6)super()和this()类似,区别是,super()从子类中调用父类的构造方法,this()在同一类内调用其它方法。
   7)super()和this()均需放在构造方法内第一行。
   8)尽管可以用this调用一个构造器,但却不能调用两个。
   9)this和super不能同时出现在一个构造函数里面,因为this必然会调用其它的构造函数,其它的构造函数必然也会有super语句的存在,所以在同一个构造函数里面有相同的语句,就失去了语句的意义,编译器也不会通过。
   10)this()和super()都指的是对象,所以,均不可以在static环境中使用。包括:static变量,static方法,static语句块。
   11)从本质上讲,this是一个指向本对象的指针, 然而super是一个Java关键字

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

•super关键字也有两种意义:–调用父类的方法–调用父类的构造器•但是,super并不表示一个指向对象的引用,它只是一个特殊的关键字,用来告诉编译器,现在要调用的是父类的方法。

热心网友 时间:2022-04-19 01:49

就是一个调用父类的所以方法,在父类中实现的,在子类中写个super()就行了

热心网友 时间:2022-04-19 03:57

Super就是超级,超类,也就是父类的意思。

在子类中想要调用父类的方法就需要用到Super。
Super()是调用父类的构造方法。

热心网友 时间:2022-04-19 06:22

都是构造函数,至于为什么要加,头两个是因为一个类里还显式的定义了一个带参数的构造方法:
student1(String
xx,String
ss){
name1=xx;sex1=ss;
}
如果不将默认无参构造方法:
student1(){
}
写出来的话,那么无参构造方法将被有参的构造方法挤掉,以后只能这么实例:Student1
stu1
=
new
Student1(XX,SS);
而不能这么实例:
Student1
stu1
=
new
Student1();

热心网友 时间:2022-04-19 09:03

Super就是父类,你这个例子里就是Object啦。
Super.xxx就是要执行父类中定义的某个方法。
你这个例子里,就是执行完那一堆system.out后在执行一下Object里定义的toString

热心网友 时间:2022-04-19 12:01

this.super()是在继承当中,默认加载在重写方法中的,默认先调用父类的方法。
先执行父类的方法在执行子类的方法。
可以理解为,子类方法调用父类方法,是写在方法体的最上方。

热心网友 时间:2022-04-19 15:16

ava:面向对象编程语言,吸收了C++优点,摒弃复杂的多继承/指针等概念,

热心网友 时间:2022-04-19 18:47

要说super就先要说this。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...怎么插入耳机时 耳机和外放都有声音?我用驱动人生驱动过显示声卡是正... USB耳机插入听不到声音,用什么软件可以听到声音?我的耳机是赛德斯的,听... 用USB71耳机看电影和用35mm立体声耳机杜比音效看电影哪个效果好 学生和家庭情况如何填写呢? 当初老板帮我租房子,租了半年,老板说干满半年才能退,现在没有干满半年... 博湖县在哪买辣椒酱 宝宝都一岁多了,要记得做这款高钙食物,不要浪费长身体的机会 高钙零食可不可以帮助孩子长高呢? 文艺一些的纹身店名字 宝马325li是三缸吗? 中国龙和西方“龙”的区别 眼底病变的主要症状有什么? 在Adobe Premiere 中插入图片,如何设置图片大小与... 西方的"龙"和东方的"龙"有哪些不同? 中央性间叶性视网膜炎 在神话传说中,东方龙与西方龙哪个更加厉害? pr怎么把多张图片放在一个画面 super 是什么意思? 眼底出血是什么现象 PR怎么让视频和图片同时显示? 龙是神话中的存在,那东方和西方的神龙哪个更为厉... 视盘血管炎是什么病啊??有什么症状 pr视频中怎么加入图片 神话中的东方龙和西方龙哪个更强,为什么? 患视网膜炎的猫咪有哪些症状 视网膜炎吃什么药? pr图片怎么连接成长图 什么是中心性视网膜炎? premiere pro 怎么把图片自动对齐 视网膜炎怎么治 东方的龙与西方的龙有什么不同之处? 视神经炎又是什么? 眼底病变的症状有哪些 龙的形象在东西方有何差异? 在premiere中如何让图片中的部分画面动起来 白塞病最严重的症状是什么? 东方的龙和西方的龙那个更厉害? super啥意思 东方神龙和西方龙谁比较猛? 视网膜黄斑病变 怎么医治啊 什么是视网膜色素变性? premierecs6能将什么和图片融合在一起 JAVA中super()的用法? 西方龙和东方龙有什么异同点? 西方的龙和东方的龙,为什么描述的完全不一样? 中心性浆液性脉络膜视网膜炎怎么治疗?吃药行吗?急 怎么在PR里做出字幕和图片运动在一起播放出来??? 西方的龙和东方的龙有哪些不同? 西方的龙和东方的龙有什么不同 西方的龙看起来邪恶,东方的龙看起来没什么,却代...