[go] 구조체(struct)의 패키지 간 상속 개념
Go 언어에서는 클래스 상속을 직접적으로 지원하지 않습니다. 하지만 구조체(struct)를 사용하여 패키지 간에 상속 개념을 구현할 수 있습니다.
Go 언어는 컴파일 타임에 타입 체크를 수행하므로, 패키지 간 상속을 구현하기 위해서는 구조체 내에 다른 구조체를 포함시키는 방식을 사용합니다. 이를 구성(composition)이라고 합니다.
패키지 간 상속을 구현하기 위한 예제 코드는 다음과 같습니다.
package animal
type Animal struct {
Name string
Age int
}
type Dog struct {
Animal // Animal 구조체를 포함함
Breed string
}
func NewDog(name string, age int, breed string) *Dog {
return &Dog{
Animal: Animal{
Name: name,
Age: age,
},
Breed: breed,
}
}
위의 예제에서 Animal
구조체를 Dog
구조체에 포함시켜 패키지 간 상속 개념을 구현합니다. Dog
구조체는 Animal
구조체의 필드와 메소드를 사용할 수 있게 됩니다.
새로운 Dog
객체를 생성하기 위해서는 NewDog
함수를 사용할 수 있습니다.
package main
import (
"fmt"
"animal"
)
func main() {
dog := animal.NewDog("Max", 3, "Labrador")
fmt.Println(dog.Name) // Max
fmt.Println(dog.Age) // 3
fmt.Println(dog.Breed) // Labrador
}
위의 예제에서는 animal
패키지를 import 하여 Dog
객체를 생성하고, Dog
구조체 내의 필드에 접근할 수 있습니다.
구조체의 패키지 간 상속을 통해 코드의 재사용성을 높이고, 효율적인 관리와 유지보수를 할 수 있습니다.
자세한 내용은 다음 참고 자료를 확인해주세요.