前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >java继承的调用顺序

java继承的调用顺序

作者头像
用户7043603
发布于 2022-02-27 03:06:06
发布于 2022-02-27 03:06:06
83401
代码可运行
举报
运行总次数:1
代码可运行
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class FatherTest {
    private String name;

    public FatherTest() {
        System.out.println("--父类的无参构造函数--");
    }

    public FatherTest(String name) {
        this.name = name;
        System.out.println("--父类的有参构造函数--" + this.name);
    }

    static {
        System.out.println("--父类的静态代码块--");
    }

    {
        System.out.println("--父类的非静态代码块--");
    }

    public void speak() {
        System.out.println("--父类的方法--");
    }
// 加入一个main程序后

    public static void main(String[] args) {
        System.out.println("--父类主程序--");
        FatherTest father = new FatherTest("父亲的名字");
        father.speak();
    }
}

结果: 执行顺序:静态代码块—主程序—非静态代码块—构造函数—一般方法。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
--父类的静态代码块--
--父类主程序--
--父类的非静态代码块--
--父类的有参构造函数--父亲的名字
--父类的方法--
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class SonTest extends FatherTest {
    private String name;

    static {
        System.out.println("--子类的静态代码块--");

    }

    {
        System.out.println("--子类的非静态代码块--");

    }

    SonTest() {
        System.out.println("--子类的无参构造函数--");

    }

    SonTest(String name) {
        this.name = name;

        System.out.println("--子类的有参构造函数--" + this.name);

    }

    @Override

    public void speak() {
        System.out.println("--子类Override了父类的方法--");

    }

// 然后再加入一个main函数

    public static void main(String[] args) {
           public static void main(String[] args) {
        System.out.println("--子类主程序--");

        FatherTest father = new FatherTest("父亲的名字");

        father.speak();
        System.out.println("==============");

        SonTest son = new SonTest("儿子的名字");

        son.speak();

        System.out.println("==============");

        SonTest son2 = new SonTest("儿子的名字");

        son2.speak();

    }

    }

}

结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
--父类的静态代码块--
--子类的静态代码块--
--子类主程序--
--父类的非静态代码块--
--父类的有参构造函数--父亲的名字
--父类的方法--
==============
--父类的非静态代码块--
--父类的无参构造函数--
--子类的非静态代码块--
--子类的有参构造函数--儿子的名字
--子类Override了父类的方法--
==============
--父类的非静态代码块--
--父类的无参构造函数--
--子类的非静态代码块--
--子类的有参构造函数--儿子的名字
--子类Override了父类的方法--

加入了子类以后,执行顺序有了新的变化,我们可以总结一下。首先第一部分执行的是父类的静态代码块—子类的静态代码块—主程序。这一部分都是执行一次,与建立多少对象没有关系。第二部分new了一个父类对象,并调用了方法。执行了它的非静态代码块—构造函数—一般方法。第三部分new了一个子类的对象,并调用了方法。执行顺序为父类的非静态代码块—父类的无参构造函数,然后是子类的非静态代码块—子类构造函数—子类的方法。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
Latex学习笔记(十)新模板的使用
最近有学长做了个新的MCMlatex模板 点击此处可以下载:下载. 主要内容如下: %% 美赛模板:正文部分 \documentclass[12pt]{article} % 官方要求字号不小于 12 号,此处选择 12 号字体 % 本模板不需要填写年份,以当前电脑时间自动生成 % 请在以下的方括号中填写队伍控制号 \usepackage[1234567]{easymcm} % 载入 EasyMCM 模板文件 \problem{A} % 请在此处填写题号 \usepackage{mathptmx}
zstar
2022/06/14
6840
LaTeX详细教程+技巧总结[通俗易懂]
若想学习Markdown,请参见我的另一篇博客:Markdown详细教程+技巧总结 。 若想直接学习LaTeX数学公式,请参见我的另一篇博客:LaTeX数学公式-详细教程 。
全栈程序员站长
2022/08/29
17.5K0
LaTeX详细教程+技巧总结[通俗易懂]
使用 LaTeX 进行论文写作
最近几个月一直在忙着跑实验,写论文,博客确实也是好久没有更新了,乘着最近论文搞得差不多了,碰巧也是在排版,来记录一下使用 LaTeX 进行论文写作的一些东西。
EmoryHuang
2023/03/12
2.6K0
使用 LaTeX 进行论文写作
LaTeX简单常用方法笔记,附模板
标题:\title{标题} 作者:\author{作者} 学号:\studentid{123} 正文:
小锋学长生活大爆炸
2021/06/11
1.6K0
LaTeX简单常用方法笔记,附模板
妈蛋,这玩意还真不得不会!
因为现在的期刊论文,尤其是计算机类的,越来越多是有统一格式要求的,并且有模板提供,这个模板就是以.tex结尾的文件包。Latex相对于word对数学公式更友好,格式更漂亮规范,处处体现了科研人员的严谨与认真。开始使用Latex到爱上Latex的过程,形容一下,就像“榴莲宝们”第一次吃到榴莲之后欲罢不能的全过程。
谭庆波
2019/05/14
1.1K0
妈蛋,这玩意还真不得不会!
Latex论文表格画法
\begin{table}[htbp] 表示表格的开始。中括号中的 htbp 表示的是表格的浮动格式。当然这个基本参数不仅仅只是对表格有用。需要注意的是,一般使用 [htb] 这样的组合,这样组合的意思就是Latex会尽量满足排在前面的浮动格式,就是 h-t-b 这个顺序,让排版的效果尽量好。         [h] 表示将表格放在当前位置。         [t] 表示将表格放置在页面的顶部。         [b] 表示将表格放置在页面的底部。         [p] 将表格放置在一只允许有浮动对象的页面上。     \caption{my table} 表示表格的标题,该设置可以放在 \begin{tabular} \end{tabular} 环境的前后,使得表格的标题显示在表格的上面或下面。\label{table1} 表示表格名字,用于正文中引用表格。     若要插入跨栏图表, 可以用浮动环境 table* 。\begin{table}[htbp] 变成 \begin{table*}[htbp] ,\end{table} 变成 \end{table*} 。     \begin{tabular}[位置]{列} 和 \begin{tabular*}{宽度}[位置]{列} 设置表格环境参数格式。         \begin{tabular}{|c|c|c|} 。一个 c 表示有一列,格式为居中显示,这是列必选参数。通过添加 | 来表示是否需要绘制竖线。|| 表示画二条紧相邻的竖直线。             l 表示该列左对齐。             c 表示该列居中对齐。             r 表示该列右对齐。         如果只需要某几列的宽度发生改变,可以使用 p{宽度} (以 cm 为单位或以 pt 为单位或 0.2\textwidth)来代替 c 参数,但是表格中的文字是默认左对齐的。因此此时可以添加 p{宽度}<{\centering} 来改变文本对齐方式,但此时需要添加包 \usepackage{array} 。在这里 \centering 参数可以被 \raggedleft 和 \raggedright 替换,分别表示为左对齐和右对齐。         也可以使用 tabular* (\begin{tabular*}{宽度}[位置]{列})环境参数,如上的 {宽度} 可以设置为 {10cm},表示整个表格的宽度为 10cm。但由于设置了表格的整体宽度,为了使表格对齐,需要使用表达式 @{\extracolsep{\fill}} ,但画正式表格一般 不推荐 使用这种表格方式(比较复杂,感觉一般用于画类似三线表格的图表中),可以通过命令调整整个表格的缩放。         \begin{tabular}[位置]{cc}。[位置] 中的参数是位置可选参数,该参数表示表格相对于外部文本行基线的位置,又称为垂直定位参数。一般为默认不设置,表示表格按照外部文本行的基线垂直居中。t表示表格顶部与当前外部文本行的基线重合。b 表示表格底部与当前外部文本行的基线重合。     可用 \setlength{\tabcolsep}{1pt} 来调整表格的列间距离 (十分推荐) 。     可用 \renewcommand\arraystretch{1.5} 来调整表格行间距,意思是将每一行的高度变为原来的1.5倍 (十分推荐) 。     如果表格太大,可以使用 \scalebox{1.5} 来对表格进行缩放,意思是将表格的大小变为原来的1.5倍 (十分推荐),使用的时候需要添加包 \usepackage{graphicx} 。
狼啸风云
2020/05/29
11K0
【Latex】2021数模国赛模板使用
本文用于排版时快速复制需要的内容框架。 所用模板为2021Latex国赛模板 插入图片 width根据需要改. \begin{figure}[H] \centering \includegraphics[width=8cm]{../../所用图片/12.png} \caption{问题一流程图} \end{figure} 连续实心点 \begin{itemize} \item \item \item \end{itemize} 插入公式 \begin{equation} \end{equat
zstar
2022/06/14
5640
LaTeX详细安装步骤和简明教程
配置TeXLive和TeXstudio。TeXLive是编译器为Latex提供运行所需的环境;TeXstudio编辑器,提供操作界面,需要先安装好TeXLive之后,TeXstudio才能使用。
全栈程序员站长
2022/08/30
4K0
LaTeX详细安装步骤和简明教程
Latex 论文elsevier,手把手如何用Latex写论文
这几天在开始写论文,准备发的是elsevier,这个网站的instruction有问题,下载的东西基本上好多的错误,所以我就写博客记录。
林德熙
2018/09/19
11.5K0
Latex 论文elsevier,手把手如何用Latex写论文
LaTeX简单常用方法笔记
API参考手册: http://www.personal.ceu.hu/tex/latex.htm
小锋学长生活大爆炸
2020/08/25
1.2K0
LaTeX简单常用方法笔记
Latex论文写作小技巧记录,不断更新
如果是IEEElatex模板,使用“equation”块,格式如下,会自动设置编号:
小锋学长生活大爆炸
2022/09/20
1.5K0
Latex论文写作小技巧记录,不断更新
MATLAB 与 C 语言的混合编程实战之辛普森积分法、自适应辛普森积分
题目大意是让你用c系语言实现辛普森积分法对定积分的粗略估计,所谓辛普森积分法即为:
glm233
2020/09/28
2K0
MATLAB 与 C 语言的混合编程实战之辛普森积分法、自适应辛普森积分
LaTeX基础操作
一个简单的LaTeX文档通常包括导言区(preamble)和正文区(document body),导言区定义文档的类型、使用的宏包等
esse LL
2024/03/12
3280
How to add subfigure in Latex
In research articles, we need to add subfigures often. To create subfigure in latex, you can use both \begin{minipage}...\end{minipage} and \begin{subfigure}...\end{subfigure} block to insert subfigures or sub-images. Subfigurs are generally inserted horizontally in one or multiple rows. Here, some example codes with output screenshots are provided in the following.
marsggbo
2019/03/27
1.6K0
How to add subfigure in Latex
通俗易懂的Latex教程文档
本篇文档可以搭配视频讲解使用。 讲解视频: https://player.bilibili.com/player.html?aid=933470753&page=1 通俗易懂的Latex教程(附数学
zstar
2022/06/14
2.5K0
通俗易懂的Latex教程文档
还在手写LaTeX表格?你可能需要这款神器
既然你点进来看了,说明你也遇到了类似的问题,也经历过手写和调试LaTeX表格的痛苦,现在就让我们解决它。
博士的沙漏
2020/09/03
3.5K0
还在手写LaTeX表格?你可能需要这款神器
LaTex 排版 (2):表格
aTeX 提供了许多工具来创建和定制表格,在本系列中,我们将使用 tabular 和 tabularx 环境来创建和定制表。
用户1880875
2021/09/09
1.5K0
latex中如何画表格_时态结构总结表格
在写论文的时候我们常常会用到三线表,三线表的基本语法就是下面这个样子的。在插入三线表的时候,在引言区加入\usepackage{booktabs} 如果是在双栏的环境里,如果我们的表格比较大,我们一般需要在表格的环境中加星号, 如果是表格只占一栏,这个时候我们就不需要加星号,我们假设我们使用表格的情况是占双栏的。三线表的精华就是那三根线了啦,用的命令就是 \toprule ,\midrule,\bottomrule 这三个命令。就是上中下,然后就是与rule 的结合。
全栈程序员站长
2022/09/22
1.8K0
latex中如何画表格_时态结构总结表格
Latex 三线表 横线竖线短横线
以这个图为例: 样式复现 导言区先添加: \usepackage{tabu} % 表格插入 \usepackage{multirow} % 一般用以设计表格,将所行合并 \usepackage{multicol} % 合并多列 \usepackage{multirow} % 合并多行 \usepackage{float} % 图片浮
小锋学长生活大爆炸
2022/09/29
4.1K0
Latex 三线表 横线竖线短横线
latex图表教程(scienhub平台支持)
LaTeX 中插入图表通常需要使用 \includegraphics 命令,该命令属于 graphicx 宏包。以下是一个简单的 LaTeX 图表教程:
用户4821680
2024/03/28
3180
相关推荐
Latex学习笔记(十)新模板的使用
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档