Java基础-父类-子类执行顺序
2023-09-27 14:20:52 时间
代码解析
子类
package com; /** * 子类 * @author huage * */ public class Test extends Test1{ public static void main(String[] args) { new Test();//测试子类和父类重载关系和调用关系 } public Test() { System.out.println("test"); test("Test"); super.test("Test");//父类中的方法被子类重载,所以必须super才能调用的父类中的方法执行 } /** * 重载父类中的test方法 */ public void test(String name) { System.out.println("who:"+name+";test:test"); } /** * static方法不调用不会执行 */ public static void test1() { System.out.println("test static void "); } }
父类
package com; /** * 父类 * @author huage * */ public class Test1 { public Test1() { System.out.println("1"); //被子类重写后,实例化子类时调用的为子类中的方法 test("Test1"); this.test("Test1"); //test1(); } /** * 当实例化的对象为子类时,子类中有重写此方法时,则在本来(父类)调用的为被子类重写的方法,子类调用也为子类重写的方法 * 如子类中要调用父类中的方法需要使用super来调用 * 自己本类中无法调用 */ public void test(String name) { System.out.println("who:"+name+";1:1"); } /** * static方法不会被重写/覆盖,但是在子类中可以有相同的方法,在调用中自己this调用的是自己的方法 */ public static void test1() { System.out.println("test1 static 111"); } /** * final方法不能被重写/覆盖,子类中不能有相同的方法(方法名,返回类型,参数相同的情况) */ public final void test2() { System.out.println("test2 final 11111 "); } }
执行情况
1
who:Test1;test:test
who:Test1;test:test
test
who:Test;test:test
who:Test;1:1
总结说明 :
子类继承父类,当实例化子类时,根据jvm装载顺序(由低向上)的加载方式,执行时先执行父类中的实例化,和其中的内容,在执行子类中的内容
相关文章
- java基础---->数组的基础使用(二)
- java基础---->数组的基础使用(一)
- java基础----->TCP和UDP套接字编程
- Java基础
- Java中 List、Set、Map遍历方式以及性能比较
- java算法基础面试题
- java写webservice接口
- Java 程序员在写 SQL 时常犯的 10 个错误
- 黑马程序员:Java基础总结----正则表达式
- Java基础:JVM垃圾回收算法
- JavaSE学习总结(一)——Java基础
- JAVA利用反射映射JSON对象为JavaBean
- 详细深入分析 Java ClassLoader 工作机制
- Java 基础(抽象类的匿名子类)
- 部署流水线搭建小记:Docker、Jenkins、Java和Couchbase
- 疯狂Java讲义_第一章笔记(Java语言发展简史)
- java - String 浅谈
- Java面向对象基础
- JAVA软件开发职责
- Java堆内存
- 【java基础系列】BigDecimal学习