Miras Alma EM-406 Java
Motivasyon Tekrar kullanım Çözüm Kopyalamak çözüm değil Önceden yazılmış denenmiş classlar Çözüm Kompozisyon Varolan classlardan objeler oluşturup kullanma Miras Alma Varolan bir classtan özel bir tip class oluşturma
Miras Alma Türetilen bir class türetildiği classın metot/özelliklerine sahip olur Tüm classlar java.lang.Object classından türer Başka bir classtan miras almak class tanımında belirtilir public class Bisiklet extends Tasit Yeni yazılan class, üst class ın metot/özelliklerini tekrar tanımlayarak özelleştirebilir
Oluşturma Parametresiz constructor metotlar otomatik olarak çağrılır. Parametreli constructor’lar türeyen class tarafından açıkça yazılmalı super(i) Türeyen class constructor’ı üst class constructor’ını ilk satırda yazmalı
Temizleme ve İsim Gizleme Standart bir destructor yapısı yok İstenirse ek metotlar yazılıp class ı kullanacak kişiler uyarılmalı Türeyen class ana class ın bazı metotlarını overload edebilir
Kompozisyon V Miras alma Kompozisyon bir classın fonksiyonelliğini o classın arayüzünü açmadan alır Başka bir class objesini kendi arayüzü sayesinde kullanır Özel bir durum olmadığı sürece class özellikleri private yapılarak erişim engellenir
protected Erişim sözcüğü Bazen normalde private olması gereken üyelerin türeyen classlar tarafından kullanılabilir olması gerekir protected üyeler aynı zamanda aynı paket içinde de erişilebilir
Type casting Upcasting Downcasting Aslında her TeflonTava bir Tavadır Herhangi bir alt class objesi üst classlarla çalışan bir yerde kullanılabilir Kompozisyon vs. Miras alma belirleyicisi Downcasting Bazen bir Tava aslında bir TeflonTava olabilir ->
final Herhangi bir özellik, metot, parametre ya da class final olabilir Genellikle önüne geldiği alanın değişmeyeceği anlamına gelir static final alanlar değişmeyen tek bir yapıdır final int i = 5;
final Data Parametreler Metotlar Classlar Primitifler için değişmez değer Objeler için değişmez referans Boş final değerleri constructorda başlatılmalı Parametreler Metot içinde değeri değişemez Metotlar Türeyen classlar override edemez Classlar Classtan türetme yapılamaz
Artırarak Geliştirme Varolan kodlar bozulmadan yeni fonksiyonellik eklenebilir Bir hata olursa yeni eklenen kodlardadır Başkalarının üst class lara bağlı kodları bozulmaz Farklı noktalarda çalışabilir kodlar çıkarılabilir