继承之super关键字的使用
发布日期:2021-08-14 17:36:11 浏览次数:11 分类:技术文章

本文共 1787 字,大约阅读时间需要 5 分钟。

一、super关键字:

在对象的内部使用,可代表父类对象。

1.

访问父类的属性:super.age

2.

访问父类的方法:super.eat()

例:

package 关键字extends;public class Dog extends Animal{
int age=20; public void eat(){ System.out.println("狗具有吃东西的能力!"); } public Dog(){ System.out.println("子类执行了!"); } public void method(){ System.out.println(super.age);//访问父类的属性 super.eat(); //访问父类的方法 System.out.println(age); //访问父类的属性 eat(); //访问子类方法 }}

结果:

父类执行了!子类执行了!40动物具有吃东西的能力!20狗具有吃东西的能力!

二、

子类的构造过程当中必须调用父类的构造方法

创建子类对象的时候,会自动执行父类构造方法,并创建父类对象。此时就隐式的使用了super关键子。

super关键字显示的写出来:

package 关键字extends;public class Dog extends Animal{
int age=20; public Dog(){ super(); //super关键字 System.out.println("子类执行了!"); }}
主函数中:        Dog dog=new Dog();//创建子类对象        //dog.method();
父类执行了!子类执行了!

super关键字隐识表达:

public class Dog extends Animal{
int age=20; public Dog(){ //super(); //这里注释掉super关键字 System.out.println("子类执行了!"); }}
主函数中:        Dog dog=new Dog();        //dog.method();

结果:

父类执行了!子类执行了!

三、

如果子类的构造方法当中没有显示调用父类的构造方法,则系统会默认调用
父类无参的构造方法

如果要显示的调用构造方法,则super关键字必须放在子类的构造方法的第一行

这里写图片描述

四、

如果子类的构造方法中既没有显示的调用父类的构造方法,
而父类又没有无参的构造方法,则编译出错

也就是说父类有有参的构造方法,子类的无参构造函数就会报错!!!

如何修改:

1.使用显示调用父类的构造函数并传入参数值;

public Dog(){        super(3);     //子类显示调用并传入参数        System.out.println("子类执行了!");    }

2.在父类中在添加一个无参的构造方法

public Animal(){         //无参的构造方法        System.out.println("父类执行了!");    }        public Animal(int age){  //有参的构造方法        this.age=age;    }

五、总结

子类的构造过程当中必须调用父类的构造方法。

如果子类的构造方法中没有显示的调用父类的构造方法,则系统默认调用父类无参的构造方法。

如果显示调用父类的构造方法则必须放在子类构造方法的第一行。

如果子类的构造方法中既没有显示的调用父类的构造方法,而父类中又没有无参的构造方法,则编译出错!!

转载于:https://www.cnblogs.com/tengpengfei/p/10454071.html

转载地址:https://blog.csdn.net/weixin_30731287/article/details/95543354 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:XML - 报表数据的新大陆
下一篇:数据的类型以及内置方法

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2024年11月13日 15时07分27秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

安卓能硬改的手机机型_云南OPPO手机维修,昆明可以上门修理手机 2019-06-17
ansys添加力矩_结构有限元分析中的静力分析(6) —— ANSYS线性静力分析 2019-06-17
通话过程中显示呼叫失败_呼叫中心系统容易被忽视的强大功能是什么? 2019-06-17
l310加完墨水后需要怎样设置_潜伏100个同行后,发现灯箱常用的画面输出方式是这4种!... 2019-06-17
opcache php 原理_PHP Opcache工作原理 2019-06-17
楷书书法规则_纯干货 | 史上最全硬笔书法入门常识!(果断转发) 2019-06-17
r矢量球坐标系旋度_基础篇1: CFD中的矢量 2019-06-17
matlab有趣表白程序_只工作,不上班——程序设计200,养生文案50,抖音文案200,方案设计... 2019-06-17
java实现多线程抢单_java学习中多线程同步和互斥有哪些实现方法 2019-06-17
大移动电子竞赛设计培训网_6大专题带你轻松备战|全国大学生电子设计竞赛 2019-06-17
mysql的NLJ_深入Mysql 2019-06-17
2012二级java真题_2012年计算机二级JAVA第七套模拟试题及答案详解 2019-06-17
java 2 2_Java 2.2 2019-06-17
java (int)object_在java上将int转换为Object 2019-06-17
java分发器_SpringMVC源码阅读:核心分发器DispatcherServlet 2019-06-17
java简易浏览器_简易浏览器代码(JAVA) 2019-06-17
ufo末日余晖java下载_幽浮:末日余晖 2019-06-17
efficient in Java_Efficient support for in-place metadata in Java software transactional memory 2019-06-17
java gui小程序_Java GUI 小程序 任意圆之间的带箭头的连线并可以存储 2019-06-17
java 更新word目录_java aspose.words 生成word目录和更新目录 2019-06-17