Incase it doesn’t show up:

  • magic_lobster_party@fedia.io
    link
    fedilink
    arrow-up
    2
    arrow-down
    2
    ·
    18 days ago

    In your example, the declaration of ArrayList look like:

    public class ArrayList extends AbstractList implements List {
    }
    

    The dependence on AbstractList is public. Any public method in AbstractList is also accessible from the outside.

    Compare it with my solution:

    public class ArrayList implements List {
        private AbstractList = new AbstractList();
    }
    

    Nothing about the internals of ArrayList is exposed. You’re free to change the internals however you want. There’s no chance any outside code will depend on this implementation detail.