터커 go 언어 프로그래밍 (완) 내용을 정리.

https://www.youtube.com/watch?v=57Ea64-Nf2U&list=PLy-g2fnSzUTBHwuXkWQ834QHDZwLx6v6j&index=29

인터페이스

⇒ 구체화된 객체란 구현이 포함된 객체. 즉 인터페이스는 구현이 포함되지 않음.

인터페이스 선언

//type => 인터페이스는 타입이다. 타입이란 뜻? 변수를 만들 수 있다.

//type 인터페이스명 인터페이스키워드.
type Sample interface { //괄호 내부는 메소드 모음. 구현은 외부에서 한다.
	fly()
	Walk(distance int) int
}

//해석 2가지
//1. (예를들어 A, B가 있고) Sample 이란 관계(인터페이스)가 있는데 이 관계를 가지기 위해
     2개의 메서드(Fly, Walk)가 필요하다
//2. 어떤 객체가 Sample 인터페이스를 구현(implements)하기 위해 2개의 메서드가 필요하다.
//   즉 어떤 객체가 2개의 메소드(fly, walk) 구현하고 있으면 Sample 인터페이스를 구현한 것이다.

인터페이스 규칙

  1. 메서드는 반드시 메서드명이 있어야 한다.
  2. 매개변수와 반환이 다르더라도 이름이 같을 수 없다 (메서드 오버로딩 불가능)
  3. 인터페이스는 메서드 구현을 포함하지 않음.
type Sample interface{
	String() string
	String(int) string // 에러 : String 메서드명이 이미 존재
	_(x int)           // 에러 : 메서드는 반드시 이름이 있어야 함
}

연습