EM-406 Java
80 likes | 287 Vues
Polymorphism. EM-406 Java. Motivasyon. 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. Upcasting. Bir objeye temel class larından bir objeymiş gibi davranmak
EM-406 Java
E N D
Presentation Transcript
Polymorphism EM-406 Java
Motivasyon • 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
Upcasting • Bir objeye temel class larından bir objeymiş gibi davranmak • Aynı class tan türeyen objelerin her biri için ayrı metot yazmak gerekmeyebilir
Metot Bağlama • 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
Metot 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
Private Override • Temel classtaki private bir metot alt classta tekrar tanımlanmaya çalışılırsa (override) nasıl bir davranış olur?
abstract • 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 • 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.