构造器内部的多态方法
协变返回类型
组合与继承
运行时类型识别
add makefile