接上一节内容……
父类:
private String name = "妮妮";
private int month = 2;
private String species = "动物";
public int temp =10;
private static int num1 = 22;
public static int num2 = 33;
static{
System.out.println("我是父类的静态代码块");
}
{
System.out.println("我是父类的构造代码块");
}
//父类的构造不允许被继承、不允许被重写
public InheritAnimal(){
System.out.println("我是父类的无参构造方法");
}
子类:
private double weight; //体重
public static int num3 = 44;
public int temp = 20;
static{
System.out.println("我是子类的静态代码块");
}
{
System.out.println("我是子类的构造代码块");
}
public InheritCat(){
System.out.println("我是子类的无参构造方法");
}
测试:
package java_test;
import java_animal.InheritCat;
public class AnimalTest1 {
public static void main(String[] args) {
InheritCat one = new InheritCat();
System.out.println(one.temp);
}
}
通过一步步调试可以看到继承的顺序是:父类静态成员>子类静态成员>父类对象构造>子类对象构造。
输出:
我是父类的静态代码块
我是子类的静态代码块
我是父类的构造代码块
我是父类的无参构造方法
我是子类的构造代码块
我是子类的无参构造方法
20