Junior — Middle
Go dilinde kalıtım mekanizması uygulanabilir mi?
sobes.tech yapay zeka
AI'dan gelen yanıt
Go dilinde, Java veya C++ gibi nesne yönelimli dillerdeki gibi klasik kalıtım yoktur. Bunun yerine, Go kodun yeniden kullanılmasını ve fonksiyonelliğin genişletilmesini sağlamak için yapıların bileşimi ve gömme (embedding) kullanır.
Örneğin, bir yapıyı başka bir yapıya gömebilir ve gömülü yapının metodları dış yapı üzerinden erişilebilir hale gelir:
package main
import "fmt"
type Animal struct {
Name string
}
func (a Animal) Speak() {
fmt.Println(a.Name, "konuşuyor")
}
type Dog struct {
Animal // Animal yapısının gömülmesi
}
func main() {
d := Dog{Animal{Name: "Bobic"}}
d.Speak() // Animal yapısının Speak metodunu çağırır
}
Bu şekilde, Go'da kalıtıma benzeyen bir davranış elde edilir, ancak bu bileşim yoluyla gerçekleştirilir ve bu da daha esnek ve basit bir tasarımı teşvik eder.