The old implementation can be replaced with the new one. In real-world programming, encapsulation reduces debugging time. Once you've rigorously defined interfaces between modules, each programmer can independently implement a module without having access to the other modules. A large, complex programming project can be broken up into dozens of pieces. By defining an unambiguous interface, you make it easier for other programmers to fix bugs that arise years after you've left the company.
Many bugs are a result of unforeseen interactions between modules.
If there's a clear specification of each interface and each module's behavior, bugs are easier to trace. Java's facilities aren't always enough, though. There are circumstances in which you'll want to have multiple modules in the same package. Then you'll have to fall back on self-discipline. This means defining your modules and interfaces before you start programming, and resisting the temptation to let one module corrupt another module's data structures.