上述代码编译后会产生2个类构造器和2个实例构造器
类构造器把类静态成员依次导入,实例构造器把实例成员依次导入并且放到原有构造器
代码之前):
导入后类似像下面这样:
Dog class Constructor ( new Cat() )
Dog instance Contructor( 输出 Dog+m)
Cat class Constructor( new Dog(1), 输出 Cat Middle Print, new Dog(3) )
Cat instance Constructor( new Dog(2), new Dog(4), 输出 Cat Create)
运行时
main开始前先调用Dog类构造器(其中要创建Cat(),故调用Cat实例构造器),所以输

Dog2
Dog4
Cat Create
然后运行Cat类构造器,输出
Dog1
Cat Middle Print
Dog3
然后再创建main中的new Cat(),输出:
Dog2
Dog4
Cat Create