실습: interface 구현하기
인터페이스를 정의하고, 그 인터페이스를 따르는 컨트랙트를 직접 구현해봅니다.
약속(interface)과 구현(컨트랙트)을 분리하는 감각을 익히는 실습입니다.
Counter 컨트랙트가 ICounter 를 is 로 상속하면, ICounter 가 약속한 함수를 빠짐없이 구현하겠다고
컴파일러에 선언하는 셈입니다. 약속된 함수가 하나라도 비어 있으면 컨트랙트는 abstract 가 되어 배포할
수 없습니다. 여기서 눈여겨볼 점은, public 상태 변수가 만들어내는 자동 getter 입니다.
자동 getter로 view 약속 충족하기
count 라는 public uint256 상태 변수를 선언하면, Solidity 가 count() 라는 view getter 함수를
자동으로 생성합니다. 이 자동 getter 가 인터페이스의 count() external view returns (uint256) 약속을
그대로 만족시키므로, 별도로 count() 함수를 작성할 필요가 없습니다.
해야 할 일:
ICounter인터페이스에는 이미count()와increment()가 약속되어 있습니다.Counter컨트랙트가ICounter를 상속(is) 하도록 만드세요.count라는public uint256상태 변수를 선언하세요. (인터페이스의count()getter 와 매칭됩니다)increment함수를 구현해count를 1 증가시키세요. (external override)
public 상태 변수는 같은 이름의 getter 함수를 자동으로 만들어주므로, 인터페이스의 count() view
요구사항을 그대로 만족시킵니다.