Junior
Soyutlama ve çok biçimlilik arasındaki fark nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Soyutlama, uygulama detaylarının gizlenmesine ve nesnenin basitleştirilmiş bir temsilinin sağlanmasına odaklanır. Çok biçimlilik, farklı sınıflardan nesnelerin temel bir sınıf veya arayüz nesnesi gibi işlenmesine izin verir ve her nesneye özgü belirli işlemleri gerçekleştirir.
| Özellik | Soyutlama | Çok Biçimlilik |
|---|---|---|
| Öz | Detayları gizleme, genel bir görünüm sağlama | Farklı türdeki nesneleri tek tipte işleyebilme yeteneği |
| Hedef | Basitleştirme, karmaşıklığı azaltma | Esneklik, genişletilebilirlik, kodun evrenselliği |
| Nasıl sağlanır | Soyut sınıflar, arayüzler | Yöntem aşırı yükleme, yöntem geçersiz kılma, arayüzler |
| Örnek | Motor detayları olmayan Araba sınıfı |
Farklı sınıflarda (Sedan, Kamyon) git() yöntemi |
Soyutlama örneği (soyutlamanın kullanımı):
interface Sekil {
// Soyut yöntem
double alanHesapla();
}
class Daire implements Sekil {
private double yaricap;
public Daire(double yaricap) {
this.yaricap = yaricap;
}
@Override
public double alanHesapla() {
// Uygulama detayları arayüz metodunun arkasına gizlenmiştir
return Math.PI * yaricap * yaricap;
}
}
Çok biçimlilik örneği:
// Çok biçimlilik kullanımı
Sekil benimSeklim = new Daire(5);
// `alanHesapla()` metodunu temel tip referansı (Sekil arayüzü) üzerinden çağırma
// Gerçekten, Daire sınıfındaki `alanHesapla()` metodu çalıştırılacaktır
double alan = benimSeklim.alanHesapla();
System.out.println("Alan: " + alan);