protected override void addProductImpl(ProductBase p) { SomeProduct prod = (SomeProduct)p; // ... }
new protected void addProduct(SomeProduct p) { addProductImpl(p); }