go 특징중 하나가 상속이 없는건데
Age int
}
func (b *Bird) flying() {
fmt.Println("flying..")
}
type Dragon struct {
Bird
}
func (d *Dragon) flying() {
fmt.Println("dragon flying..")
}
이렇게 embedding하면 메서드 오버라이딩도 되던데
상속이랑 다를게뭐임??
go 특징중 하나가 상속이 없는건데
이렇게 embedding하면 메서드 오버라이딩도 되던데
상속이랑 다를게뭐임??
var a *Bird = &Dragon{ ... } 안됨 subclass가 아니라 진짜 composition이기 때문에
아 이게 있었군
외부에 노출되는 메소드명은 덮어씌울 수 있는데 내부 호출되는 메소드는 오버라이드 못함