해결된 질문
작성
·
433
0
다형성에 대해 설명하실 때 부모 클래스의 메소드에 virtual, 자식 클래스의 메소드에 override를 사용하라고 알려주셨는데, 이걸 쓸 때와 안쓸 때의 차이가 무엇인지 잘 모르겠습니다.
해당 코드에서 부모 메소드와 이름이 같아 경고가 발생하긴 하지만, 오버라이딩을 했을 때와 실행 결과는 동일했습니다. 오버라이딩을 하는 것과 안하는 것의 명확한 차이점이 있을까요?
답변 1
0
네 엄청난 차이가 생기는데요.
A a = new B();
이런 식으로 실제 객체를 생성할 때는 new B로 했으나,
부모 타입의 참조 변수로 들고 있을 일이 생깁니다.
그럴 때 a.classA()를 호출할 때의 동작에서 차이가 납니다.
이 부분은 추후에도 몇 번 더 나올거에요
중요한 차이가 발생했었군요 감사합니다!!!