Polymorphism
Bir işlem birden fazla tip üzerinde çalışabilir Metot temel tip arayüzünü kullanır İşlem çalışan metot tarafından yapılır
Bir objeye temel class larından bir objeymiş gibi davranmak Aynı class tan türeyen objelerin her biri için ayrı metot yazmak gerekmeyebilir
Bir metot çağrıldığında hangi metot çalışır Erken: Derleme esnasında Geç/Dinamik/Runtime : Çalışma esnasında Objeler hangi tipten olduklarını bildirirler Java’da static ve/veya final hariç geç bağlama
Shape sh = new Circle(); sh.draw(); Shape üzerindeki draw değil Circle üzerindeki draw çalışır Belli bir noktada draw metoduna bağlı bir kod olabilir Sisteme yeni şekiller eklenmesi bozulma yaratmaz
Temel classtaki private bir metot alt classta tekrar tanımlanmaya çalışılırsa (override) nasıl bir davranış olur?
Temel classta anlamsız olan metotlar shape.draw() ??? Gövdesi olmayan metotlar abstract olur abstract metodu olan classlar abstract olur abstract classtan obje üretilmez
Constructor içinden polymorphic metot çağrılırsa ne olur? Obje için hafıza alanı hazırlanır Temel class constructorları çağrılır Bu aşamada bir tekrar tanımlanmış metot çağrılırsa boş döner. Tanımlama sırasına göre değişkenler başlatılır. Türemiş class constructor u çağrılır.