如果子类成员或方法覆盖了父类中的成员,那么子类的对象只能访问覆盖后的成员和方法,如果要访问父类中同名的成员和方法,需要使用super关键字代表父类的成员和方法。

声明一个父类user

java比较入参中数据与查出来的表数据 java入参..._父类

声明一个子类Student并继承父类user

java比较入参中数据与查出来的表数据 java入参..._父类_02

代码解释:

第6行:使用super关键字访问父类变量name

第9行:使用super关键字调用父类print()方法.

在main函数中进行测试

java比较入参中数据与查出来的表数据 java入参..._构造方法_03

如图,依次调用父类方法print(),子类方法print()和printuser()。

可以看到控制台依次按照方法中的代码进行输出。

此外,super关键字也可以调用父类的构造方法。

对user进行改造。并添加构造方法。

java比较入参中数据与查出来的表数据 java入参..._java比较入参中数据与查出来的表数据_04

对子类student进行如下改造。

java比较入参中数据与查出来的表数据 java入参..._Java入参关键字_05

如图,父类user中显式地声明了一个带参构造方法。之后在子类中使用了super(参数列表)的方式调用了父类的构造方法。(父类中显式声明构造方法,子类中也需要显式声明构造方法)

接下来在main函数中进行验证。

java比较入参中数据与查出来的表数据 java入参..._Java入参关键字_06

可以看到,u1与s1调用构造方法进行实例化,Student类由于继承自user,所以继承了属性name与age,而其构造方法中使用了super关键字调用了父类user的构造方法。

控制台中打印出了相关的信息。

注意:

使用super关键字在子类的构造方法中调用父类的构造方法时,参数列表中参数的个数,数据类型和顺序必须和父类中的构造方法中的参数列表一致。

使用super关键字调用父类的构造方法时,super(参数列表)这一行必须放在子类的构造方法体的第一行。

如果父类中显式地声明了构造方法,那么子类中必须显式地声明构造方法,且子类构造方法的参数列表要至少包含父类中的参数列表。

super关键字也不能在类方法中使用。