Sobes.tech
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.