• 类加载顺序(2)


    package loader;
    
    public class Animal{
        public String test="AnimalField";
        public static String testStatic="AnimalStaticField";
        
        public Animal(){
            System.out.println("Animal的构造方法");
        }
        public void testA(){
            System.out.println("Animal的普通方法");
        }
        public static void testStatic(){
            System.out.println("Animal的静态方法");
        }
        
        {
            this.testA();
            System.out.println("Animal的普通块");
        }
        static{
            Animal.testStatic();
            System.out.println("Animal的静态块");
        }
        
    
    }
    package loader;
    
    public class Person extends Animal{
        public String test="PersonField";
        public static String testStatic="PersonStaticField";
        
        public Person(){
            System.out.println("Person的构造方法");
        }
        public void testP(){
            System.out.println("Person的普通方法");
        }
        public static void testStatic(){
            System.out.println("Person的静态方法");
        }
        
        {
            this.testP();
            System.out.println("Person的普通块");
        }
        
        static{
            Person.testStatic();
            System.out.println("Person的静态块");
        }
        
    
    }
    package loader;
    
    public class Test {
    
        
        /**类加载顺序
         * 二:由子类调用父类构造方法的情况
         * 1.创建子类对象(未完成)
         * 2.先调用父类的构造方法(未完成)
         * 3.加载父类的静态块>加载子类的静态块>加载父类的普通块>完成父类的构造函数>加载子类的普通块>完成子类构造函数
         * @param args
         */
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            Person p=new Person();
            
        }
    
    }

     输出顺序:

    Animal的静态方法
    Animal的静态块
    Person的静态方法
    Person的静态块
    Animal的普通方法
    Animal的普通块
    Animal的构造方法
    Person的普通方法
    Person的普通块
    Person的构造方法

  • 相关阅读:
    Info.plist的秘密(raywenderlich笔记)
    我所理解的性能测试中负载测试与压力测试的区别
    seo优化
    localStorage,sessionStorage那些事儿
    浏览器cookie那些事儿
    JavaScript--Ajax请求
    javascript-理解原型、原型链
    React Native:从入门到原理
    知道这 20 个正则表达式,能让你少写 1,000 行代码
    程序猿进化必读:让App的运行速度与响应速度趋于一流(iOS)
  • 原文地址:https://www.cnblogs.com/hebiao/p/12450643.html
Copyright © 2020-2023  润新知