抽取出了 BaseTower,每种炮塔都继承此类 覆盖fire方法 来实现每个炮塔不同的攻击类型