Note that this is not a Java inheritance hierarchy, but a delegation hierarchy. In the delegation design, a class loader delegates classloading to its parent before attempting to load a class itself. A class loader parent can be either the System class loader or another custom class loader. If the parent class loader cannot load a class, the class loader attempts to load the class itself. In effect, a class loader is responsible for loading only the classes not available to the parent. Classes loaded by a class loader higher in the hierarchy cannot refer to classes available lower in the hierarchy.

출처 - https://docs.oracle.com/cd/E19501-01/819-3659/beadf/index.html
자바의 클래스로더는 계층적 구조를 가진다. 어떤 클래스를 로딩하려고 할 때, 자식 클래스 로더가 해당 클래스를 찾지 못하면 부모 클래스에게 해당 클래스를 찾는 책임을 위임한다. 이렇게 계층적 구조로 클래스 로딩 시스템을 가진다면 여러 장점이 있는데 다음과 같다.
It allows for a separation of concerns, where each class loader is responsible for loading classes from a specific source.
It allows for customization of the class loading behavior, such as loading classes from a network or database instead of the file system.
It provides security, as each class loader can have its own security policy.
여기서 말하는 계층적 구조는 위의 오라클 문서에 나와 있듯이 자바의 상속 개념이 아니다. 위임 구조이다.