
package com.itheima.d10_extends_constructor;public class Test { public static void main(String[] args) { // 目标:认识继承后子类构造器的特点 // 特点:子类的全部构造器默认会先访问父类构造器 // 创建对象,就会自动调用构造器 Dog d1 = new Dog(); // 创建子类对象,会先调用父类构造器,再调用子类构造器 // 先执行构造器,再打印地址 System.out.println(d1); // 使用有参构造器 Dog d2 = new Dog("lxc"); System.out.println(d2); }}
// 这是一个父类package com.itheima.d10_extends_constructor;public class Animal { public Animal(){ System.out.println("父类Animal无参构造器被执行"); }}// 这是一个子类package com.itheima.d10_extends_constructor;public class Dog extends Animal{ public Dog(){ // 每个子类构造器都有默认的父类构造器 super(); // 写不写都有,默认找父类的无参构造器执行 System.out.println("子类Dog无参构造器被执行"); } // 定义应该子类有参构造器 public Dog(String name){ super(); // 写不写都有,默认找父类的无参构造器执行 System.out.println("子类有参构造器" + name +"被执行"); }}