java中的super()是什么

是不是什么类中的方法

在创建窗口中使用的super

要说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成员,别无它法。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-08-02
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关键字本回答被网友采纳
第2个回答  2023-07-05
在Java中,super()是一个关键字,用于在类的构造方法中调用其父类的构造方法。点击学习大厂名师精品课
当我们在子类中定义构造方法时,可以使用super()来调用父类的构造方法来初始化父类中的成员变量,可以继承父类的非私有成员变量与方法。
使用super()有以下几个作用:
1、调用父类构造方法:使用super()可以在子类的构造方法中调用父类的构造方法,以初始化父类的成员变量;
2、避免命名冲突:子类与父类具有相同的成员变量或方法时,可以使用super关键字来指定要访问的成员变量或方法所在的父类,以避免命名冲突;
3、访问父类成员变量与方法:通过使用super关键字,可以在子类中访问被隐藏的父类成员变量与方法。
想学习java可以选择慕课网。慕课网是IT教育行业的造梦者,也是前沿技术内容的创造者和传播者!课程范围覆盖:前端、JAVA、Python、Go、人工智能、大数据、移动端等60类主流技术语言,充分满足了面试就业、职业成长、自我提升等实际需求,帮助用户实现从技能提升到岗位提升的能力闭环。
第3个回答  2014-01-04
•super关键字也有两种意义:–调用父类的方法–调用父类的构造器•但是,super并不表示一个指向对象的引用,它只是一个特殊的关键字,用来告诉编译器,现在要调用的是父类的方法。
第4个回答  2006-10-30
就是一个调用父类的所以方法,在父类中实现的,在子类中写个super()就行了