protected Vehicle(ICarColour carColour, IWheel wheel, Brand brand, Numberplate numberplate, EngineClass engine) { this.brand = brand; this.carColour = carColour; this.numberplate = numberplate; this.wheel = wheel; this.engine = engine; id = ++counter; price = wheel.Price() + carColour.CalculatePrice() + brand.GetPrice() + engine.GetPrice(); }