해결된 질문
작성
·
237
0
[질문 내용]
Dog dog = new Dog();
위의 코드는 Dog 내부에 extends로 Animal이 있기에 Dog 클래스는 Animal 이라는 부모가 있는걸 알 수 있습니다.
하지만
Animal dog = new Dog();
Animal 타입으로 Dog를 생성하면 힙메모리에는 Dog와 Animal이 하나의 영역에 생기지만 Animal 타입으로 선언하였기 때문에 힙메모리에서 Animal 부분을 먼저 바라볼 것으로 생각하는데 어떻게 Animal에서 자식 요소가 있는걸 알고 오버라이딩된 메서드가 우선적으로 처리되는건지 궁금합니다. annotation의 영향인가요?
=======
추가 질문!
Animal dog = new Dog();
위 코드와 같이 선언하면 자바에서는 자동으로 업캐스팅이 이뤄지는것 이라고 이해해도 될까요?
Animal dog = (Animal) new Dog();
위와 같이 자바에서 자동으로 형 변환을 시켜준다고 생각하면 되는건가요?!