zoukankan      html  css  js  c++  java
  • JAVA中的继承初始化

    最近在看《Think in JAVA》,这是其中的一节内容,没怎么看明白,动手写了一段

    class ObjInit {
        ObjInit() {
        System.out.println("ObjInit");
        }
        private static int x = testInit();
        private static int testInit() {
        System.out.println("ObjInit static init");
        return 2;
        }
    }
    
    class ObjInit2 extends ObjInit {
        ObjInit2() {
        System.out.println("ObjInit2");
        }
        private static int x = testInit();
        private static int testInit() {
        System.out.println("ObjInit2 static init");
        return 2;
        }
    
    }
    
    public class ObjectInitTest extends ObjInit2 {
    
        public static void main(String[] args) {
        // TODO Auto-generated method stub
        //ObjectInitTest g=new ObjectInitTest();
        System.out.println("我只是分隔符");
        ObjectInitTest g2=new ObjectInitTest();
        }
    
    }

    输出结果:

    ObjInit static init
    ObjInit2 static init
    我只是分隔符
    ObjInit
    ObjInit2

    结论:

    在java继承后,进行初始化时,

    1.系统将首先对从基类到继承类的static变量进行初始化;

    2.然后进行构造方法

    如果类里面没有static变量的话,还是很好理解的。。。

  • 相关阅读:
    数据库客户端们
    tcl调用tuxedo的一个demo
    tcl实现http请求
    CHAP算法C++实现
    归一化数值
    PPPoE名词解释
    Prism MEF example
    为什么我们要开源
    WPF Issues
    WPF & EF & Prism useful links
  • 原文地址:https://www.cnblogs.com/malaya/p/3996197.html
Copyright © 2011-2022 走看看