zoukankan      html  css  js  c++  java
  • 2020年8月16日 静态初始化static

    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";
        }
    }
  • 相关阅读:
    红黑树
    二叉搜索树
    散列表
    快速排序
    堆排序
    归并排序
    插入排序
    Shell脚本之:函数
    Shell脚本之:退出循环
    ACM刷题之路(四)2018暑假实验室集训——深广搜专题题解
  • 原文地址:https://www.cnblogs.com/douyunpeng/p/13512228.html
Copyright © 2011-2022 走看看