Junior — Middle
Nesne yönelimli programlama bağlamında arayüz ile soyut sınıf arasındaki fark nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Arayüz ve soyut sınıf, nesne yönelimli programlamada soyutlamaları tanımlamanın iki yoludur, ancak temel farklara sahiptirler:
- Arayüz, bir sınıfın uygulaması gereken metodların bir kümesini tanımlar, ancak uygulama içermez (bazı dillerde varsayılan uygulamalı metodlar mümkün olsa da). Arayüz durum (örneğin, örnek değişkenleri) içeremez.
- Soyut sınıf hem soyut metodlar (uygulama olmadan) hem de uygulamalı metodlar içerebilir. Ayrıca alanlar (durum) içerebilir.
Swift'te örnek:
protocol Vehicle {
func startEngine()
}
class Car: Vehicle {
func startEngine() {
print("Motor çalıştı")
}
}
// Swift'te soyut sınıf, üzerine yazılması gereken metodlara sahip bir sınıf aracılığıyla uygulanır
class Animal {
func makeSound() {
fatalError("Bu metodun üzerine yazılması gerekir")
}
}
class Dog: Animal {
override func makeSound() {
print("Hav")
}
}
Bu şekilde, arayüz bir sözleşme belirler ve soyut sınıf kısmi bir uygulama sağlayabilir ve durumu saklayabilir.