java 对象初始化和代码块初始化顺序

class A
{
    public A(){
        System.out.println("测试!!!!!!!!!!!");
    }
}

class Demo19  extends A
{

    {
        x=7;//代码块初始化
        System.out.println("hello world!测试代码块的执行顺序!AAAAAAAAAAA");
    }
    public int x=1;//这里不会初始化变量值  只会声明变量
    public int y=2;//这里不会初始化变量值  只会声明变量
    
    public Demo19(){
    //super();
    //相当于 x=7
    //然后x=1;
    //y=2;
    //y=13;
    }
    public Demo19(int d_x,int d_y)
    {    //super();    
        //x=7;
        //x=1;
        //y=2;
        //y=13;
        x=d_x;
        y=d_y;
        //super();//假如显示的调用  那么是不能放在这里初始化的
    }
    //代码块的执行顺序是按照代码块的顺序执行的
    //代码块的执行时间:在对象初始化的时候执行!!!!!!!!!!!!!
    {
        y=13;//代码块初始化
        System.out.println("hello world!测试代码块执行的顺序!BBBBBBBBBBBB");
    }
    
    //构造函数的代码块
    
    public static void main(String[] args)
    {    
        //这里初始化的时候就跟上面的初始化差不多
        Demo19 demo=new Demo19();
        System.out.println("测试代码块:x="+demo.x+"  ,y="+demo.y);
        
        //这里的初始化相当于上面的那个操作
        Demo19 demoOne=new Demo19(12,45);
        System.out.println("测试代码块:x="+demoOne.x+"  ,y="+demoOne.y);
        
        System.out.println("其他的顺序是不变的!这个是比较重要的");
        
        System.out.println("代码块的使用!");
        
    }
}

 

抽象类的初始化:

abstract class A
{
   String name;
   String id;
   
   public abstract void test();
}

abstract class B extends A
{
    //子类也可以是抽象类,不实现父类的方法
}

class C extends A
{
    public  void test(){
        System.out.println("子类假如不是抽象类  那么必须实现父类的方法");
    }
}
abstract class D1
{
    /* 抽象类中也是有构造函数的,只是这个只能子类初始化 */
    
    D1(){
        System.out.println("测试抽象类的构造函数!");
    }    
    static String name="什么是你";
}
class D extends D1
{
    D(){
        System.out.println("子类调用父类的构造函数");
    }
    public void test(){
        System.out.println(this.name);
        
        System.out.println("假如抽象类中没有抽象方法,那么继承也是没有问题的");
    }
}
class Demo5
{
    public static void main(String[] args)
    {
        D d =new D();
        d.test();
        System.out.println("抽象类!!!!!");
        System.out.println("类不支持多重继承!!!!!!!!!!!!!!!!");
    }
    
}

 

 

 

posted @ 2013-09-10 18:52  考虑到五岁的限制  阅读(728)  评论(0编辑  收藏  举报