JAVA 中 super 关键字的使用 实例

super( )的用法

1. super.XXX

说明:这里的XXX指的是父类的成员变量名即父类的属性

2. super.XXX( )

说明:这里的XXX是父类中的其中一个方法名

3. super( )

说明:这种形式指的是:调用父类没有参数的构造方法(也叫构造函数)注意: 这里super( ) 只能放在子类的构造方法里面,并且只能放在构造方法的首句           

4. super( x,y,z...)

说明:此形式指:调用父类有参数的构造方法,也必须放在子类的构造方法(成员方法不可以)里面,并且只能放在构造方法的首句。其中x,y,z是指的与父类此有参构造方法中参数数据类型相对应的子类中的参数

以上就是super( )的四种应用形式,具体的应用看以下代码:

1. super的第一种应用形式即调用父类的成员变量:

打印结果:

 

2. super的第二种应用形式即利用super关键字调用父类的无参构造方法:

 

 

打印结果:

为什么在Son这个类中并没有一条输出语句,但是还是输出了一句话?就是因为用new关键字去创建对象的时候,会去调用此类的构造方法,而在此构造方法中的第一句,就默认为是:super( ),也就是去调用了父类的无参构造方法 这一句代码是自动加上去的,哪怕自己不在第一行写上:super( ),就像写一个类,如果不写这个类的构造方法的话,会自动加上一个public void修饰的,并且方法体为空的方法一样,当然自己加上也是可以的,但是加的时候必须要在子类构造方法的第一句。

 

3. super的第三种应用形式即利用super关键字调用父类的有参构造方法:

 

结果打印:

 

可见super( )和super(str)分别调用了父类的Father( )和Father( String str )两个构造方法

4. super的第四种应用形式即利用super关键字调用父类的成员方法:

打印结果:

 

又以上结果可知,理论与实践相符!!!(其中“我是父亲的无参数构造方法…..”这句话之所以输出,是因为在Son(String str)此构造方法里面自动加上了super()而在Father( )里面有向控制台输出的语句。)

 

 

5. 子类的普通成员方法利用super关键字调用父类的成员方法:

 

打印结果:

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值