Translate

29 Nisan 2015 Çarşamba

Java : Kalıtım (Miras, Inheritance) & Extends

Java Class Yapısında Inheritance ve Extends

Genel olarak bir sınıftan yeni sınıflar türetmek olarak açıklanabilir.Kalıtım veya miras olarak da bahsedebiliriz.Günümüzden örnek vericek olursak yapı olarak ; yeni doğan bir çocuğun anne ve babasından bir takım özellikleri taşıması olabilir.

Bir sınıfın başka bir sınıftan bilgileri miras olarak alması istendiğinde aralarında bir ilişkisi kurulur.Bu ilişki inheritance sağlar.Aralarında bağlantı kurulduktan sonra yeni oluşan sınıf türetilen sınıfın özelliklerini taşır.Bu ilişkinin yararları ise sınıflar arasında düzenli bir yapı ve ilişki kurmak , her sınıfta olan bir takım özelliklerin tekrar tekrar yazılmasını önlemek ve ortak olan özellikleri tek bir sınıfta toplamaktır.
Örnek :

class calisan {

    int boy;
    int kilo;
    int yas;
}

class sef extends calisan {

    String gorev;
}

public class mainclass {

    public static void main(String args[]) {

        sef omer = new sef(); //Sef tipinde bir omer nesnesi üretiliyor

        omer.kilo = 75;
        omer.gorev = "Usta";

        System.out.println(omer.kilo); //kilo ozelliğini extends ile calisan classından aldı
        System.out.println(omer.gorev); //gorev ozelligi ait oldugu sef classına ait
    }

}
  Yukarıda vermiş olduğum örnekte ki şu bölümde  
public class calisan {
    int boy;
    int kilo;
    int yas;
}
"calisan" isminde bir class oluşturulup boy , kilo ve yaş değişkenlerini içermektedir.
class sef extends calisan {

    String gorev;
}

public class mainclass {

    public static void main(String args[]) {

        sef omer = new sef(); //Sef tipinde bir omer nesnesi üretiliyor

        omer.kilo = 75;
        omer.gorev = "Usta";

        System.out.println(omer.kilo); //kilo ozelliğini extends ile calisan classından aldı
        System.out.println(omer.gorev); //gorev ozelligi ait oldugu sef classına ait
    }

} 
"sef" adında yeni bir class oluşturulmuştur.Ve bu class "calisan" sınıfından boy , kilo ve yas değişkenlerini almıştır (miras veya kalıtım). Ve omer adlı kişinin şef olduğu belirtilmiştir.Ayrıca kilosu da gösterilmiştir.Ama kilo değişkeni sef sınıfında yoktur.İşte miras yoluyla "calisan" sınıfından bilgiler aktarılmıştır.
  Bu bölümdeki extends kodu sınıfı uzatmaya yarıyor. Yani bir alt sınıf oluşturarak programın daha da büyümesini sağlar.Kodlarda da görüldüğü gibi yeni oluşturulan sef isimli class calisan class ından bilgileri alır.Ve daha sonra yeni oluşturulan bir class sef class ından bilgileri alır ve bu döngü şeklinde aktarılmaya devam eder.Günümüzde kalıtıma ait örneklerin kuşaktan kuşağa aktarılması gibi.
class sef extends calisan {

    String gorev;
}
Yeni oluşturulan class türetilen class tan daha geniş daha sistemli daha da içerikli olabilir.Yani türetilen sınıfın içerdiği bilgiler dışında kendisine bilgi ekleyebilir (güncelleyebilir) ve böylece türetilen sınıftan daha büyük olur.

Alıntıdır : Ömer Erdoğan

Hiç yorum yok:

Yorum Gönder