首页 > 其他 > 详细

2020年8月16日 静态初始化static

时间:2020-08-16 15:04:52      阅读:58      评论:0      收藏:0      [点我收藏+]
package com.atguigu.test03;

/*
 * 一个类初始化时会先检查它的父类是否初始化,如果父类没有初始化,那么会先初始化父类。因为一个类只要初始化一次。
 * 
 * (1)父类的初始化<clinit>()
 * ①父类的静态变量的显式赋值
 * ②父类的静态代码块
 * (2)子类的初始化<clinit>()
 * ①父类的静态变量的显式赋值
 * ②父类的静态代码块
 * 
 * 特殊:
 *      静态方法是不能被重写的
 */
public class TestClassInit {
    public static void main(String[] args) {
        /*Father f = new Father();
        System.out.println("-------------------");
        Son s = new Son();*/
        
        Son s = new Son();
        
        /*Father f = new Son();//多态引用
        System.out.println("----------------");
        f.assign();//静态方法在编译期间就确定了,不需要在运行时动态绑定
*/    }
}
class Father{
    private static String info = assign();
    static{
        System.out.println("(1)父类的静态代码块");
    }
    public static String assign(){
        System.out.println("(3)assign()方法");
        return "Father";
    }
}
class Son extends Father{
    private static String info = assign();
    static{
        System.out.println("(2)子类的静态代码块");
    }
    public static String assign(){
        System.out.println("(4)assign()方法");
        return "Son";
    }
}

 

2020年8月16日 静态初始化static

原文:https://www.cnblogs.com/douyunpeng/p/13512228.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!