Nesne Yönelimli Programlama'da (Object-Oriented-Programming) birbirinden farklı olarak oluşturulan nesnelerin ortak karakteristik özellikleri olabilir.
Örneğin günlük hayattan bir alıntı yaparak ayakkabıyı düşünelim.Yürüyüş ayakkabısı, koşu ayakkabısı, topuklu ayakkabı, babet...Bu saydıklarımızın hepsinin farklı görünüşü, farklı alanlarda kullanımı olmasına rağmen hepsinin ortak özelliği aslında ayakkabı olmasıdır.Hepsi ayağa giyilir, kolay yürümeyi sağlar vs.
Inheritance,
-Superclass ile subclass arasındaki ilişkiyi tanımlar.
-Classlar arasında bir hiyerarşi oluşturup ortak olan özelliklerini kullanabilmemize olanak sağlar.
Kısaca,
Superclass = Temel karakteristik özellikleri taşıyan baba
Subclass = Temel özellikleri babasından almış çocuk olarak düşünebiliriz.
Bu noktada da KALITIM superclass ve subclass yani baba-oğul ilişkinisini sağlayan özelliktir.
ÖNEMLİ !
- Superclass'lardan daha spesifik olan subclass'a erişemez.
- Fakat subclass, superclass'a genelleştirilebilir.
Çocuktan baba yapabilirsiniz fakat babadan çocuk yapamazsınız.Örnek olarak ayakkabı hem koşu ayakkabısı hem de topuklu ayakkabı ile ortak özellikler taşır. Siz koşu ayakkabısının özelliklerini ayakkabı ile aynı oluşturabilirsiniz ama ayakkabının özelliklerini koşu ayakkabısıyla aynı tutarsanız topuklu ayakkabıyla aynı özellikleri taşımasını yani ikisininde sadece ayakkabı olan özelliklerini taşıtamazsınız.
Daha netleşmesi için bir Java örneği yapalım:
İlk olarak SuperClass'ımızı oluşturalım. Bu Hayvan sınıfı olsun.
public class Hayvan {
int yas;
public Hayvan(int yas){
this.yas = yas;
System.out.println("Hayvan olusturuldu!");
}
public void yemek(){
System.out.println("Hayvanlar yemek yer");
}
public static void main(String[] args) {
Hayvan a = new Hayvan(5);
Kus d = new Kus();
Kedi c = new Kedi();
d.oter();
c.miyav();
a.yemek();
d.yemek();
c.yemek();
d.ucar();
c.yurur();
}
}
//Kedi ve Kuşu main de çağırdığımız zaman ikisinin de kendi özellikleir dışında aynı zamanda hayvan olma özelliğinide taşıdığını görürüz. Fakat hayvan oluşturduğumuzda bunun kedi veya kuşun spesifik özelliklerini taşımadığını görürüz.
Subclasslarımızın ilki Kuş olsun:
//extends yapısını kullanarak ile extend ettiğimiz sınıfın(superclass) metodlarını alırız.
public class Kus extends Hayvan{
public Kus(){
super(15);
System.out.println("Kus olusturuldu.");
}
//super() anahtar keilmesiyle superclassın metodlarına erişim sağlayabiliriz. Bu örnekte yaş özelliği
public void oter(){
System.out.println("Kus oter.");
}
public void ucar(){
System.out.println("Kus ucar");
}
}
Diğer subclass ise Kedi olsun.
public class Kedi extend Hayvan{
public Kedi(){
super(7);
System.out.println("Kedi oluşturuldu.");
}
public void miyav(){
System.out.println("Kedi miyavlar.");
}
public void yurur(){
System.out.println("Kedi yurur");
}
}
INHERITANCE : KALITIM
Reviewed by Engineer A
on
03:28
Rating:

Hiç yorum yok: