Java基础-父类-子类执行顺序
2015-05-09 20:41
211 查看
代码解析
子类
父类
执行情况
总结说明 :
子类继承父类,当实例化子类时,根据jvm装载顺序(由低向上)的加载方式,执行时先执行父类中的实例化,和其中的内容,在执行子类中的内容
子类
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中子类继承父类程序执行顺序问题
- java 父类访问子类对象的实例变量 继承过程中的执行顺序
- 【JAVA】探究JAVA父类子类静态代码块、静态变量、构造方法的执行顺序
- Java基础-重写-子类重写父类中的方法后执行情况
- java中子类继承父类程序执行顺序问题
- Java继承中父类子类构造方法、静态代码块、非静态代码块的执行顺序
- java中父类和子类中的静态代码块、非静态代码块和构造器的执行顺序
- java父类子类静态块、块、构造方法的执行顺序
- JAVA继承关系中父类子类代码执行顺序
- java中子类继承父类程序执行顺序
- java中父类与子类构造函数的执行顺序
- java中 静态成员、实例成员、构造方法在子类和父类中的执行顺序
- Java子类继承父类,静态代码块、普通代码块、构造代码块的执行顺序
- java继承中父类和子类静态、非静态代码块,构造函数,静态方法的执行顺序
- Java中子类和父类相关方法的执行顺序
- Java 父类与子类初始化块,静态块,构造函数执行顺序
- java中子类继承父类程序执行顺序