继承后,先调用父类的构造

继承后,先调用父类的构造

当子类创建对象时候,是会先调用父类当中的构造,会从最终的父类一直调用到子类当中

同理,对于代码块,也是会先调用父类的,再调用子类的

 

public class Animal {
   int a;
   Animal (int a){ //看到这里要想到,此时有参构造已经代替了默认的无参构造,并且该构造方法只能在本包中的类类名创建对象
       this.a = a;
       System.out.println("Animal类的有参构造");
   }
}
class Bird extends Animal{
    int b;
    Bird(int b,int a){
        super(a);
        this.b = b;
        System.out.println("Bird extends Animal类 , Bird 是有参构造");
    }
/**
 * 看不懂子类中所以父类当中的属性可以看:子类构造中有使用父类属性博客
 */
     /**再比如
         *  B(int a,double b){
         *         super(a); 
         *         x = b;
         *         
         *         把super(a) ,int a 带入变成super(int a)这个就有点类似于构造方法,
         *         只不过构造方法的名字是类名,这里是在子类中调用了父类的构造方法,把名字改为了super而已
         */
}

class Cat extends Bird{
     int c;
     Cat(int c,int a,int b){
         super(a,b);
         this.c =c;
         System.out.println("Cat extends Bird类 , Cat 是有参构造");
     }
}




 

public class Te {

    public static void main(String[] args) {
         Cat cat = new Cat(1,2,3);
        System.out.println("cat的值是:"+cat.a+"--"+cat.b+"--"+cat.c);
         }
    }

 

Animal类的有参构造
Bird extends Animal类 , Bird 是有参构造
Cat extends Bird类 , Cat 是有参构造
cat的值是:3--2--1

Process finished with exit code 0
上一篇:java继承和组合的区别


下一篇:element ui table 导出excel表格