Junior
Referans tipleri veri türlerinde kalıtım ve çok biçimlilik nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Miras kalıtım, yeni bir sınıfın (alt sınıf/çocuk sınıf) mevcut bir sınıfın (üst sınıf/ebeveyn sınıf) özelliklerini (alanlar) ve davranışlarını (yöntemler) miras almasını sağlayan bir mekanizmadır; böylece işlevsellik genişletilir veya üzerine yazılır. Bu, kodun yeniden kullanılmasını teşvik eder ve "bir şeydir" ilişkileri (is-a) kurar.
Polimorfizm, farklı sınıflara ait nesnelerin, çalışma zamanında belirli türlerine bağlı olarak aynı yöntem adına farklı yanıtlar verme yeteneğidir. Bu, kodun esnekliğini ve genişletilebilirliğini sağlar, alt sınıf nesnelerinin üst sınıf referansı aracılığıyla işlenmesine izin verir.
Referans tipi veri türlerinde (sınıflarda), bu kavramlar kilit rol oynar:
- Miras: Alt sınıf, üst sınıfın üyelerine erişebilir ve kendi üyelerini ekleyebilir veya kalıtılan yöntemlerin davranışını değiştirebilir (geçersiz kılma - overriding). Alt sınıf nesnesi, üst sınıf nesnesinin beklendiği her yerde kullanılabilir.
- Polimorfizm: Aynı kalıtım hiyerarşisine ait farklı nesneler, aynı kodla işlenebilir; aynı yöntemi çağırırlar, ancak bu yöntemin uygulaması, çalışma zamanında nesnenin belirli türüne özgü olur.
Java örneği:
// Üst sınıf (ebeveyn)
class Animal {
public void makeSound() {
System.out.println("Ses çıkarıyor");
}
}
// Alt sınıf (çocuk), Animal'den kalıtım alır
class Dog extends Animal {
// Üst sınıf metodunu geçersiz kılar
@Override
public void makeSound() {
System.out.println("Hav!" );
}
}
// Alt sınıf (çocuk), Animal'den kalıtım alır
class Cat extends Animal {
// Üst sınıf metodunu geçersiz kılar
@Override
public void makeSound() {
System.out.println("Miyav!");
}
}
// Polimorfizm örneği
public class PolymorphismExample {
public static void main(String[] args) {
Animal myAnimal = new Animal(); // üst sınıf nesnesi
Animal myDog = new Dog(); // alt sınıf nesnesi, üst sınıf referansı
Animal myCat = new Cat(); // alt sınıf nesnesi, üst sınıf referansı
myAnimal.makeSound(); // Çıktı: Ses çıkarıyor
myDog.makeSound(); // Çıktı: Hav! (Havlama yöntemi çağrılır)
myCat.makeSound(); // Çıktı: Miyav! (Miyavlama yöntemi çağrılır)
}
}