interface Car {} interface Ferrari extends Car {} interface ICarRepairShop { void repair(C car); } class AbstractCarRepairShop implements ICarRepairShop { @Override public void repair(Car car) { } } class FerrariRepairShop extends AbstractCarRepairShop { @Override public void repair(Ferrari car) { } }