더북(TheBook)

4.4.2 다형성

다형성이란 다양한 타입의 객체가 같은 메시지를 통해 다양한 방식으로 동작하게 하는 것을 말한다. 다른 언어에서는 서브타이핑이나 메서드 오버로딩 등으로 다형성을 지원한다. 하지만 Go에는 서브타이핑과 오버로딩이 없다. Go는 인터페이스로 다형성을 지원한다.

Go의 인터페이스는 단순히 메서드 서명의 묶음이고, 인터페이스에 정의된 메서드와 서명이 같은 메서드를 가진 타입은 인터페이스로 사용할 수 있다. 메서드와 인터페이스 사이에 명확한 연결 고리는 없다. 타입에 정의된 메서드, 즉 객체가 동작하는 방식에 따라 인터페이스와 is-A 관계를 형성한다.

다시 말해 인터페이스를 사용하면 타입이나 메서드의 구현 방식과 관계없이 다양한 값을 같은 형태로 다룰 수 있다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.