java中继承的初始化顺序

1、继承的初始化顺序
   a、初始化父类再初始化子类
   b、先执行初始化对象中属性,再执行构造方法中的初始化

eg:a

public class Animal{

     public  int  age;

     public  string  name;

     public void eat(){

        System.out.println(" 年龄"+age+"动物可以吃东西")

      }
     public Animal(){

        System.out.println(" Animal 类执行了")

      }

}


public  class Dog  extends  Animal{

       public Dog(){

        System.out.println(" Dog 类执行了")

     }

}


public class Initail{


  public static void main(String【】 args){

    Dog  dog = new Dog();

    dog . age =10;

    dog . name =nini;


   }
}

输出结果:Animal 类执行了
          Dog 类执行了



eg:b

public class Animal{

     public  int  age = 10;

     public  string  name;

     public void eat(){

        System.out.println(" 年龄"+age+"动物可以吃东西")

      }
     public Animal(){
        
        age = 20;

      }

}


public  class Dog  extends  Animal{

}


public class Initail{


  public static void main(String【】 args){
   
    Animal animal = new Animal();
    
    System.out.println(" animal age:" +animal.age)

   }
}


输出结果:animal age:20   //此时说明是 先执行初始化对象中属性  再执行构造方法中的初始化  因为age先被赋值 10 后被20 覆盖了



2、  父类对象--->属性初始化--->构造方法
     
     子类对象--->属性初始化--->构造方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值