文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

一篇文章教会你使用Java中的Super关键字基本用法

2024-12-03 15:08

关注

一、重写父类方法

什么是重写父类方法

在继承关系中,子类会继承父类所定义的方法,当在子类中对继承方法进行一些修改,这就是重写父类方法。也就是说子类包含父类同名方法。

重写父类方法遵循“两同两小一大”原则

两同:方法名,参数列表相同。

两小:子类方法返回值类型小于等于父类方法返回值类型;子类方法声明抛出的异常类小于等于父类方法声明抛出的异常类。

一大:子类方法的访问权限大于等于父类方法的访问权限。

重写父类方法案例

例如:

  1. //定义Animal类 
  2. class Animal{ 
  3. public String name;//名字属性 
  4. public int age;//年龄属性 
  5. //动物叫的方法 
  6. void shout(){ 
  7.         System.out.print("动物发出的叫声"); 
  8. //定义Cat继承Animal类 
  9. class Cat extends Animal{ 
  10. void shout(){ 
  11.         System.out.print("喵喵喵~~~~"); 
  12. //显示名字和年龄方法 
  13. public void show(){ 
  14.         System.out.print("我是"+name+","+"今年"+age+"岁"); 
  15. public class p20 { 
  16. public static void main(String[] args) { 
  17.     // TODO Auto-generated method stub 
  18.     Cat c=new Cat();//创建Cat类实例对象 
  19.     c.name="英国短毛猫";//给Cat类的name属性赋值 
  20.     c.age=2;//给Cat类的age属性赋值 
  21.     c.show();//调用Cat类的show()方法 
  22.     c.shout();//调用Cat类的shout()方法 
  23.     } 

输出的结果是:

  1. 我是英国短毛猫,今年2岁喵喵喵~~~~ 

从上面代码中,Cat类是继承Animal类的shout()方法,当Cat类继承Animal类还没有shout()方法时,调用的Animal的shout()方法并打印“动物发出的叫声”,这时就不能描述具体的动物叫声,Cat类对象表示猫类,发出的叫声是“喵喵喵~~~”。方法的重写就是在Cat子类中定义一个shout()方法对父类的方法进行重写。在调用Cat类对象的shout()方法时,只会调用子类重写的该方法,没有去调用父类的shout()方法。

二、super关键字

什么是super关键字

super是当前类的直接父类对象,是对当前对象的直接父类对象的引用。

如果当子类重写父类的方法后,子类对象是不能访问父类被重写的方法,可以使用super关键字访问父类的成员

super关键字调用父类的成员变量和成员方法格式

  1. super.成员变量 
  2. Super.成员方法([参数1,参数2,参数3,....]) 

super关键字的用法案例

例如:

  1. //定义Animal类 
  2. class Animal{ 
  3.     String name="动物";//name属性 
  4.     int age=6;//age属性 
  5.     void shout(){ 
  6.     System.out.println("动物发出的叫声"); 
  7.     } 
  8. class Dog extends Animal{ 
  9.     String name="狗";//name属性 
  10.     //重写父类的shout方法 
  11.     void shout(){ 
  12.     super.shout(); 
  13. //访问父类成员变量 
  14. void show(){ 
  15.     System.out.println("名字:"+super.name+","+"年龄:"+super.age+"岁!"); 
  16.     } 
  17. public class p22 { 
  18. public static void main(String[] args) { 
  19.     // TODO Auto-generated method stub 
  20.     Dog d=new Dog();//创建狗的对象 
  21.     d.shout();//调用Dog对象的重写的shout方法 
  22.     d.show();//调用Dog对象的show方法 
  23.     } 

输出的结果是:

  1. 动物发出的叫声 
  2. 名字:动物,年龄:6岁! 

从上面代码中,首先定义一个Animal类,在Dog类继承Animal类,然后重写了父类的shout()方法,在子类中使用super.shout()调用父类重写的方法,在show()方法访问父类的属性,super关键字是可以访问属性和方法。

三、super关键字调用父类的构造方法

super关键字调用父类的构造方法格式

  1. super([参数1,参数2,参数3,...]) 

super关键字调用父类的构造方法案例

例如:

  1. //定义Fruit类 
  2. class Fruit{ 
  3. //定义Fruit类有参数的构造方法 
  4. public Fruit(String name,double weight){ 
  5.         System.out.print("我是一个"+name+","+"重量为:"+weight+"g!"); 
  6.   } 
  7. //定义Cherry继承Fruit类 
  8. class Cherry extends Fruit{ 
  9. public Cherry(){ 
  10.         super("樱桃",66);//调用父类有参数的构造方法 
  11.  
  12. public class p23 { 
  13. public static void main(String[] args) { 
  14.         // TODO Auto-generated method stub 
  15.         Cherry c=new Cherry();//实例化子类Cherry对象 
  16.   } 

输出的结果是:

  1. 我是一个樱桃,重量为:66.0g! 

从上面的代码中,首先是定义了一个Fruit类,在Fruit类中定义了有参数的构造方法。定义Cherry继承Fruit类,调用父类有参数的构造方法。在实例化Cherry对象就会调用Cherry类的构造方法,Cherry类的构造方法被调用时父类的构造方法也一样被调用了。super调用父类构造方法的代码要写子类构造方法的第一行,只可以出现一次。

四、 总结

本文主要介绍了重写父类的方法和super关键字。

重写父类方法就是子类包含父类同名方法,遵循两同两小一大”原则。

super关键字是当前类的直接父类对象,是对当前对象的直接父类对象的引用,通过super关键字案例理解这个用法。

此外,本文还介绍了super关键字调用父类的构造的方法,介绍了它的格式和super关键字调用父类的构造方法案例。希望大家通过本文的学习,对你有所帮助!

本文转载自微信公众号「Java进阶学习交流 」,可以通过以下二维码关注。转载本文请联系Java进阶学习交流 公众号。

 

来源:Java进阶学习交流内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯