\"Abstraction and encapsulation are complementary concepts: abstraction focuses on the observable behavior of an object... encapsulation fo
What? You're not convinced yet?
It's easier to show the opposite. We used to write code that had no control over who could access details of its implementation. That made it almost impossible at times to determine what code modified a variable.
Also, you can't really abstract something if every piece of code in the world might possibly have depended on the implementation of specific concrete classes.