在Java中,子类继承了父类,子类和父类都定义了一个静态方法,一个午无参构造方法,一个play方法,如果调用子类的play方法的话执行顺序是什么

  1. 静态方法的调用:
  • 静态方法是与类本身相关的,而不是与具体的对象实例相关。
  • 当调用子类的play方法时,首先会查找子类自身是否有定义静态方法,如果有,则执行子类的静态方法。
  • 如果子类没有定义静态方法,则会向上查找父类,执行父类的静态方法。
  1. 构造方法的调用:

    • 当创建子类对象时,会先调用父类的无参构造方法,然后再调用子类的无参构造方法。
    • 这是因为子类的构造方法会隐式地调用父类的无参构造方法。
  2. 实例方法的调用:

    • 当调用子类的play方法时,首先会查找子类自身是否有定义该方法,如果有,则执行子类的play方法。
    • 如果子类没有定义play方法,则会向上查找父类,执行父类的play方法。

总的来说,执行顺序如下:

  1. 子类静态方法
  2. 父类静态方法
  3. 父类无参构造方法
  4. 子类无参构造方法
  5. 子类play方法 (如果子类定义了play方法)
  6. 父类play方法 (如果子类没有定义play方法)

其中,静态方法的调用和实例方法的调用是有区别的,静态方法是与类本身相关的,而实例方法是与具体的对象实例相关的。




近日总结:难受ing。。。

相关推荐
玖玥拾1 小时前
C# 语言进阶(十五)C# 游戏服务端 MySQL 数据库
服务器·开发语言·网络·数据库·mysql·c#
铅笔侠_小龙虾1 小时前
Rust 学习目录
开发语言·学习·rust
我命由我123451 小时前
执行 Gradle 指令报错,无法将“grep”项识别为 cmdlet、函数、脚本文件或可运行程序的名称
android·java·java-ee·android studio·android jetpack·android-studio·android runtime
考虑考虑2 小时前
Sentinel安装
java·后端·微服务
云泽8082 小时前
从零吃透 C++ 异常:抛出捕获、栈展开、异常重抛与编码规范详解
开发语言·c++·代码规范
灯澜忆梦2 小时前
GO---可见性规则
开发语言·golang
逝水无殇2 小时前
C# 文件的输入与输出详解
开发语言·数据库·后端·c#
这是个栗子3 小时前
前端开发中的常用工具函数(八)
开发语言·前端·javascript
凤凰院凶涛QAQ3 小时前
《Java版数据结构 & 集合类剖析》栈与队列:“push/pop 是栈的灵魂,offer/poll 是队列的骨架——四组 API,两种人生”
java·开发语言·数据结构
研☆香3 小时前
为什么变量声明在赋值前也能使用?—— 深入理解 JavaScript 变量提升与作用域
开发语言·前端·javascript