抽象类版本，将重复代码抽象成Check抽象类，然后重写抽象函数，实现各种方法的重载