회장 자리를 상속받은 나, 이전 회장이 타던 차는 롤스 로이스
내가 차를 제네시스로 바꾸라고 함.
비서에게 차를 대기시키라고 했을 때 주차되어있을 차종은?
-> 2. 제네시스!
모든 클래스는 test가 끝난 상태 (= 오류가 발생하지 않는 완전한 프로그램)
Q) 상속을 받았는데 함수이름, 파라미터, 반환값 모두 동일한 상태에서 다시 함수를 정의하는 것은?
A) 오버라이딩(재정의)
(오버로딩은 필요 없음! 컴파일러는 함수 이름, 파라미터 타입, 리턴 타입을 붙여줌 -> mangling, 이때 함수 이름이 다르면 완전히 다른 함수로 인식함)
Q) 과거에 만들어진 함수 C, 오버라이딩을 구현한 오늘은 어떤 함수를 호출하는가?
-> 2. B 호출 (회장님 차 제네시스!!)
함수 A: 롤스로이스
함수 B: 제네시스
객체 지향 프로그래밍의 핵심을 오버라이딩!
사람 <- 학생
학생 객체가 상위 클래스를 가리키도록 (C에서 A를 호출하면 오버라이딩한 B가 호출되는 것처럼)
플랫폼에 어떤 클래스가 있는지, 클래스 내에 메소드들이 언제 호출되도록 설계해놨는지 알아야함. 우리가 원하는 메소드는 오버라이딩을 해서 구현함.
- 상속
- 재정의
- 이벤트 처리