Chapter 13 마무리 테스트
상속의 핵심 개념을 모두 적용해 컨트랙트를 완성하세요.
부모 컨트랙트를 정의하고, 자식이 is 로 상속받고, 부모의 virtual 함수를 자식이 override 로 재정의하는 흐름을 처음부터 끝까지 직접 구현해야 합니다. public 상태 변수를 선언하면 컴파일러가 자동으로 getter 함수 를 만들어 준다는 점도 함께 활용합니다.
작성 전 체크리스트
- 부모의 재정의 대상 함수에는
virtual이, 자식의 재정의 함수에는override가 정확히 붙어야 합니다. - 재정의 함수는 부모와 같은 시그니처(이름·매개변수·반환 타입)를 유지해야 합니다.
public상태 변수는 별도 getter 를 만들지 않아도 외부에서 같은 이름으로 값을 읽을 수 있습니다.
pure 함수는 상태를 읽지도 쓰지도 않는 함수입니다. 고정된 문자열만 반환하는 describe 같은
함수에 적합합니다.
요구 사항:
Vehicle컨트랙트(부모)를 작성하세요.wheels라는public상태 변수를 선언하고 초기값을4로 설정하세요.describe라는virtual public pure함수를 만들고, 문자열"vehicle"을 반환하세요.
Vehicle을 상속받는Car컨트랙트(자식)를 작성하세요.describe함수를override로 재정의해 문자열"car"를 반환하세요.
부모에 virtual, 자식에 override 를 정확히 붙여야 컴파일됩니다. wheels 는 public 으로 선언해 자동 getter 가 생기게 하세요.