상속은 확장입니다.
A가 가진 기능 모두를 가져가는것이지요. 예외로 private한 영역은 상속되지 않지만, super로 A public 메소드를 호출하여 private한 영역의 기능은 수행됩니다.
public 이나 proteced로 선언이 되었다면, A가 가지고 있는 모든 기능을 B가 가져갈 수도있고, 수정하여 나만의 것으로 만들 수도 있습니다.(Override)
부모 영역에 ArrayList가 존재하고, 자식이 같은 영역에 ArrayList를 조작하면 당연히 가지고있는 값이 바뀌게됩니다.
그렇다고 해서 A를 상속받은 B와 C는 같은 객체가 되는것이 아닙니다. 다만 둘다 A의 기능을 활용할 수 있는것이죠.
질문의 요지가 이게 아닐지도 모르겠지만 대략적인 개념은 이렇습니다.