인프런 커뮤니티 질문&답변
오버라이딩 질문이요
작성
·
226
답변 1
1
깊알못nodeep
지식공유자
안녕하세요.
Ch_22_1 ch_over = (Ch_22_1)ch_2;
위의 코드는 형변환을 한 것입니다.
결국 이전 에 만든 ch_22_2로 만든 ch_2를 형변환 하여 Ch_22_1 ch_over를 정의해 준것입니다.
즉 Ch_22_1 ch_over 는 ch_2에서 이름만 바뀐 것이 아닌, 엄현히 ch_2와는 다른 객체 입니다.
그리고 Ch_22_1 ch_over = new Ch_22_2(); <-이것도 결국에 ch_22_2로 정의해 줬기 때문에
같은 메소드와 멤버를 사용할 수가 있습니다.
하지만 둘다 오버라이딩이 되었기 때문에 가능한 것입니다.
ch_22_2 클래스로 가셔서 상속된 부분을 지워보시면 두 방식다 오류가 나는 것을 확인할 수가 있습니다.





