代码复用（组合和继承）的好处
practice 14