A virtual class of Lock