As per the official Selenium documentation, it is suggested not to mix both Implicit waits and Explicit Waits. Mixing both of them can cause unpredictable wait times.
Implicit wait is defined only once in the code. It will remain same throughout the driver object instance.
Explicit wait is defined whenever it is necessary in the code. This wait will call at the time of execution. It is a conditional wait.
Explicit wait will overwrite the implicit wait where ever explicit wait is applied. So, Explicit Wait gets first preference then Implicit Wait.