关于java对象初始化的问题

来源:互联网 发布:玲珑醉梦网络剧资源 编辑:程序博客网 时间:2024/05/16 20:24

 

public class Test{
 
public static void main(String[] args) 
    
{
        
new Child();
    }

}

class Parent 

 
private int aintanceInt = 30;
 
static {
  System.out.println(
"Parent ");
 }

    
public void test() 
    
{
    }

 
    
public Parent() 
    
{
        test();
    }

  
    
public static void main(String[] args) 
    
{
        
new Child();
    }

}

 
class Child extends Parent 
{
    
private int instanceValue = 20;
    
static {
     System.out.println(
"child");
    }

    
public Child() {
     
    }

    
public void test() 
    
{
        System.out.println(
"instance value is: " + instanceValue);
    }

}

 

这段代码打印的结果是

parent  child  instance alue is 0

java面向对象初始话的顺序分为横向  static —》field默认初始化 —》构造函数 —》field赋值

纵向是基类 —》子类

打印出0   因为java基于面向对象的思想   访问基类parent方法时 已经生成child实例