Junior — Middle
Nesne yönelimli programlamada sınıflar ve arayüzleri birleştiren ortak özellikler nelerdir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Nesne yönelimli programlamada sınıflar ve arayüzler birkaç ortak özelliği paylaşır:
- Soyutlama: Her ikisi de uygulama detaylarını gizleyerek soyut veri türlerini tanımlamaya olanak tanır.
- Davranış tanımı: Hem sınıflar hem de arayüzler, uygulanması gereken metodlar kümesini belirler.
- Çok biçimlilik: Sınıflar ve arayüzler aracılığıyla çok biçimli davranışlar gerçekleştirilebilir, böylece farklı türdeki nesneler tek tip olarak kullanılabilir.
- Tip belirleme: Her ikisi de değişkenler ve fonksiyon parametreleri için kullanılabilecek türleri tanımlamakta kullanılır.
Go dilinde, arayüzler metodlar kümesini tanımlar ve sınıf yoktur, ancak metodlar içeren yapılar sınıf gibi davranır. Arayüzler davranışı tanımlar, yapılar ise verileri ve uygulamayı içerir.
Go örneği:
// Arayüz
type Reader interface {
Read(p []byte) (n int, err error)
}
// Arayüzü uygulayan metodlara sahip yapı
type File struct {}
func (f File) Read(p []byte) (n int, err error) {
// uygulama
return 0, nil
}
func main() {
var r Reader = File{}
r.Read(nil)
}