后来才发现,并不是所有的喜欢都会有结果,终究要明白,遇见就已经很难得,你让我觉得,我们的关系,不止这样,又只能这样。

关于继承中的构造方法的执行顺序是怎么样的?

首先创建子父类,创建测试类

//父类
public class Fu {}
//子类
public class Zi extends Fu{}
//测试类
public class TestA {}

在父类中创建有参构造和无参构造

//父类
public class Fu {public Fu(){System.out.println("父类无参");}public Fu(int i ){System.out.println("父类有参");}}

在子类中创建有参构造和无参构造

//子类
public class Zi extends Fu{public Zi(){System.out.println("子类无参");}public Zi(int age){System.out.println("子类有参");}
}

当我们在测试里面new了子类的对象,发现无法调用父类中的构造方法

构造方法无法被继承

但是当我们只写了调用子类的无参方法,编译就会不一样:
我们会发现,我们只是调用了子类的无参,但是父类的无参也输出了,这是因为在子类的构造方法内,有一个隐藏的super();,我们之前用supre调用的时父类属性,而super()调用的父类的构造方法
这个是系统默认调用的,当我们调用子类的无参构造的时候,他会执行第一个语句,也就是supper(),于是就会去执行父类的无参方法输出父类无参之后,程序继续让下执行,输出子类无参

我们的子类构造方法是有参的,那么我们在测试类上加入参数

在子类的有参内,同样还是有一个super(),同样回调取到父类无参,那怎么获取父类的有参呢?其实我们只需要在子类的构造方法内,在super()的括号内写入参数就可以了
我们在一个构造方法内写入super(),那么系统就不会使用它默认的super()了,使用我们写的这个来运行
运行:

总结:

  • 构造方法无法被继承、但可以通过其他方法调用
  • 构造方法下有一个默认调用父类的无参构造,super()
  • 如果手动添加super,那么系统就会运行我们手动添加的这个
  • super必须使用在第一行
  • 我们使用this在构造方法内调取成员变量,也必须要放第一行,所以就跟super冲突了,所以this和super在一个构造中,不能同时使用

来张心灵净化图,缓解身心疲劳:

Java继承中的构造方法使用的理解,白话文,简单易理解相关推荐

  1. Java常用类之String类知识清单,简单易理解

    String类基础知识 1.String类表示字符串,理解为不可变的字符序列 2.String类声明为final,不可被继承 3.String类实现了Serializable接口:表示字符串是支持序列 ...

  2. Java重写、super关键字、继承中的构造方法

    2.super 在Java类中使用super来引用基类的成分 备注:new 一个对象出来的时候,就有一个this 引用,引用指向对象自身:         如果对象是一个子类对象,就有一个super引 ...

  3. java 继承 子类 实例化_关于Java继承中父类和子类构造函数的问题

    Java子类在实例化时默认调用的是父类的无参构造函数,不论实例化时调用的是子类的有参还是无参构造函数, 1.当父类没有显式定义构造方法时, 编辑器会默认为此类添加一个隐式无参构造函数.此时子类可以有自 ...

  4. 转转转!java继承中的this和super

    学习java时看了不少尚学堂马士兵的视频,还是挺喜欢马士兵的讲课步骤的,二话不说,先做实例,看到的结果才是最实际的,理论神马的全是浮云.只有在实际操作过程中体会理论,在实际操作过程中升华理论才是最关键 ...

  5. 继承中的构造方法执行顺序

    继承中的构造方法执行顺序 在子父类中,创建子类对象,调用子类的构造方法, 在子类的构造方法的第一行代码如果没有调用父类的构造或者没有调用子类的其他构造,则默认调用父类无参构造. 为什么要调用父类构造? ...

  6. Java继承中的子类父类构造方法的调用

    Java的继承中,关于子类和父类构造方法的使用. 子类在初始化时,一定会调用父类的构造方法. 原因如下: 在子类继承父类时,子类会继承父类所有的公共成员变量,公共方法,这些方法在子类中不再重复声明. ...

  7. java继承中构造方法_java之继承中构造方法总结(文字版)

    子父类中的构造方法的特点 1. 在子类构造对象时,发现访问子类构造方法时,父类也运行了.为什么呢? 答:因为,在子类构造方法中第一行有一个默认的隐式语句:super(); 子类的实例化过程:子类中所有 ...

  8. Java继承中成员变量和成员函数的覆盖

    2019独角兽企业重金招聘Python工程师标准>>> 关于继承中变量和方法的覆盖: 1, 与基类中同名的变量,会被派生类所覆盖(同时存在但是有独立的值),直接取值将是派生类的值,但 ...

  9. java可以继承私有的,在java继承中,私有属性能否被继承

    其实在继承中,子类可以继承父类的私有属性的内容空间,但是不能继承父类私有属性的访问权限,下面看代码 父类Animal public class Animal { private String name ...

  10. java的子类调用构造器的顺序_深入剖析Java继承中的初始化与构造器调用关系

    声明:本文为牛旦教育原创,所有权保留,转载请注明来源. 一个对象有两件事:状态和行为. 类中的实例变量表示其对象的状态. 实例方法表示其对象的行为. 类的每个对象都保持自己的状态. 创建类的对象时,将 ...

最新文章

  1. 提供第三种代码生成方式——通过自定义BuildProvider为ASP.NET提供代码生成
  2. 初识Mysql(part17)--我需要知道的3条Mysql语句之联结
  3. SAP不同产品的UI开发策略概述
  4. php获取当前时间戳方法
  5. 超几何分布_概率小题——分布列专题
  6. Linux系统安全之pam后门安装使用详解
  7. 使用VLC Media Player 在Mac上修剪视频
  8. vosviewer入门-分析web of science
  9. 关于如何关闭Windows错误报告
  10. ENet-论文笔记-理解
  11. LeetCode力扣刷题——简单易懂的贪心算法
  12. 成人世界的规则,越早了解,越早受益
  13. 多彩的产品之年——产品经理一席谈
  14. 实训3:网络信息筛选
  15. MySQL数据库 第4章:数据库设计
  16. Python开发常见bug
  17. Vue 3.0 这个迷人的小妖精,到底好在哪里?
  18. 金融分析:图形可视化plotly绘图思路—多子图教程
  19. 淘宝里面的data-spm-anchor-id属性有什么用?
  20. 浏览器打印,Chrome网页打印中的宽度控制

热门文章

  1. Neutron中Linux Bridge与Open vSwitch优劣势对比
  2. 【优化算法】蛾群优化算法(MSA)【含Matlab源码 1451期】
  3. 【OFDM通信】基于matlab OFDM通信系统仿真【含Matlab源码 1005期】
  4. 【运动学】基于matlab GUI最小半径泊车方法仿真【含Matlab源码 690期】
  5. 【多目标优化求解】基于matlab遗传算法求解多目标配电网重构模型【含Matlab源码 970期】
  6. java多线程实现医院叫号_Java多线程经典题目(医院挂号)
  7. 离散数学期末复习概念_复习第1部分中的基本概念
  8. python检查超过两个条件_python-基于多个条件检查,将值从另一个数据...
  9. 为什么不能线程调用类的成员函数_SLAM从0到1——13.SLAM中的多线程编程(2)
  10. 如何监控微信小程序HTTP请求错误