（抽象类版本）根据原始版本第一次修改，抽取相同代码成为一个抽象类Check，然后建立各个操作成为子类继承抽象类，重写抽象方法。