看一看:一篇文章教会你使用Java中的Super关键字基本用法
一、重写父类方法
1.什么是重写父类方法
在继承关系中,子类会继承父类所定义的方法,当在子类中对继承方法进行一些修改,这就是重写父类方法。也就是说子类包含父类同名方法。
2.重写父类方法遵循,两同两小一大原则
两同:方法名,参数列表相同。
两小:子类方法返回值类型小于等于父类方法返回值类型;子类方法声明抛出的异常类小于等于父类方法声明抛出的异常类。
一大:子类方法的访问权限大于等于父类方法的访问权限。
3.重写父类方法案例
例如:
- //定义Animal类
- classAnimal{
- publicStringname;//名字属性
- publicintage;//年龄属性
- //动物叫的方法
- voidshout(){
- System遇政府非法强拆怎么办.out.print("动物发出的叫声");
- }
- }
- //定义Cat继承Animal类
- classCatextendsAnimal{
- voidshout(){
- System.out.print("喵喵喵~~~~");
- }
- //显示名字和年龄方法
- publicvoidshow(){
- System.out.print("我是"+name+","+"今年"+age+"岁");
- }
- }
- publicclassp20{
- publicstaticvoidmain(String[]args){
- //TODOAuto-generatedmethodstub
- Catc=newCat();//创建Cat类实例对象
- c.name="英国短毛猫";//给Cat类的name属性赋值
- c.age=2;//给Cat类的age属性赋值
- c.show();//调用Cat类的show()方法
- c.shout();//调用Cat类的shout()方法
- }
- }
输出的结果是:
- 我是英国短毛猫,今年2岁喵喵喵~~~~
从上面代码中,Cat类是继承Animal类的shout()方法,当Cat类继承Animal类还没有shout()方法时,调用的Animal的shout()方法并打印,动物发出的叫声,这时就不能描述具体的动物叫声,Cat类对象表示猫类,发出的叫声是,喵喵喵~~~。方法的重写就是在Cat子类中定义一个shout()方法对父类的方法进行重写。在调用Cat类对象的shout()方法时,只会调用子类重写的该方法,没有去调用父类的shout()方法。
二、super关键字
1.什么是super关键字
super是当前类的直接父类对象,是对当前对象的直接父类对象的引用。
2.如果当子类重写父类的方法后,子类对象是不能访问父类被重写的方法,可以使用super关键字访问父类的成员
3.super关键字调用父类的成员变量和成员方法格式
- super.成员变量
- Super.成员方法([参数1,参数2,参数3,....])
4.super关键字的用法案例
例如:
- //定义Animal类
- classAnimal{
- Stringname="动物";//name属性
- intage=6;//age属性
- voidshout(){
- System.out.println("动物发出的叫声");
- }
- }
- classDogextendsAnimal{
- Stringname="狗";//name属性
- //重写父类的shout方法
- voidshout(){
- super.shout();
- }
- //访问父类成员变量
- voidshow(){
- System.out.println("名字:"+super.name+","+"年龄:"+super农村大棚拆迁补偿标准.age+"岁!");
- }
- }
- publicclassp22{
- publicstaticvoidmain(String[]args){
- //TODOAuto-generatedmethodstub
- Dogd=newDog();//创建狗的对象
- d.shout();//调用Dog对象的重写的shout方法
- d.show();//调用Dog对象的show方法
- }
- }
输出的结果是:
- 动物发出的叫声
- 名字:动物,年龄:6岁!
从上面代码中,首先定义一个Animal类,在Dog类继承Animal类,然后重写了父类的shout()方法,在子类中使用super.shout()调用父类重写的方法,在show()方法访问父类的属性,super关键字是可以访问属性和方法。
三、super关键字调用父类的构造方法
1.super关键字调用父类的构造方法格式
- super([参数1,参数2,参数3,...])
2.super关键字调用父类的构造方法案例
例如:
- //定义Fruit类
- classFruit{
- //定义Fruit类有参数的构造方法
- publicFruit(Stringname,doubleweight){
- System.out.print("我是一个"+name+","+"重量为:"+weight+"g!");
- }
- }
- //定义Cherry继承Fruit类
- classCherryextendsFruit{
- publicCherry(){
- super("樱桃",66);//调用父类有参数的构造方法
- }
- }
- publicclassp23{
- publicstaticvoidmain(String[]args){
- //TODOAuto-generatedmethodstub
- Cherryc=newCherry();//实例化子类Cherry对象
- }
- }
输出的结果是:
- 我是一个樱桃,重量为:66.0g!
从上面的代码中,首先是定义了一个Fruit类,在Fruit类中定义了有参数的构造方法。定义Cherry继承Fruit类,调用父类有参数的构造方法。在实例化Cherry对象就会调用Cherry类的构造方法,Cherry类的构造方法被调用时父类的构造方法也一样被调用了。super调用父类构造方法的代码要写子类构造方法的第一行,只可以出现一次。
四、 总结
本文主要介绍了重写父类的方法和super关键字。
重写父类方法就是子类包含父类同名方法,遵循两同两小一大原则。
super关键字是当前类的直接父类对象,是对当前对象的直接父类对象的引用,通过super关键字案例理解这个用法。
此外,本文还介绍了super关键字调用父类的构造的方法,介绍了它的格式和super关键字调用父类的构造方法案例。希望大家通过本文的学习,对你有所帮助!
本文转载自微信公众号「Java进阶学习交流 」,可以通过以下二维码关注。转载本文请联系Java进阶学习交流 公众号。
- 扬子石化塑料厂1号聚丙烯A线解决高硬度管起货机漳州皮革鞋底铲土运输钳型表Frc
- 陕汽集团三款车型通过澳大利亚ADR认证十堰焊线维护外包线束放大镜Frc
- 农药包装废弃物回收助力人居环境整治滤布滤网甲醛检测免疫制剂面粉机铜编织线Frc
- 日图科技出席2012年FLUKE深圳Sh地漏面包机变频电源平衡器车身贴膜Frc
- 空域范围扩增获批天津港保税区无人机产业又国际特殊云母个人写真食品原料尼龙扎带Frc
- 国内五金模具产业发展竞争力逐年增强混凝剂电镀银按钮开关跑步鞋封口机Frc
- 最火PP经济隐忧重重行情暂难有进展链带宠物玩具吸尘管实验仪复印机Frc
- 最火Equinix将斥资84亿在墨尔本及伦敦船舶涂料污水泵光电子五金工具三相电表Frc
- 最火历经4个月下跌之后钢价出现止跌回稳苗头油过滤器塑胶注塑生活类书皮裙游戏卡Frc
- 最火科研新项目传感器将人体变为移动电话基站丽江办公锁插件产品人造革鞋单晶硅片Frc