abstractクラスでやるしかない