Pythontr

husonet | Tarih: 01.11.2017

Inheritence ve polymorphism nedir?

inheritance ve polymorphism arasındaki fark

Merhabalar Arkadaşlar, (Not:Lütfen öneri ve sorularınızı yorum olarak atınız. Teşekkürler şimdiden)




Bu makalemde OOP (Nesneye yönelik programlama) terimlerimlerinden bahsedeceğim. Nesneye yönelik programlamanın olmazsa olmazlarından biri Kalıtım (Inheritence)'dir. Inheritence 'i bir örnek kod ile açıklayacağım.




class Ev{
protected:
int en, boy;
public:
void deger_set(int a, int b)
{ en=a; boy=b; }
public abstract int alan();
};

class KareEv: public Ev{
public:
int alan()
{ return en*boy; }
};

class UcgenEv: public Ev{
public:
int yukseklik;
int alan()
{
yukseklik= boy/2;
return en*yukseklik/2; }
};


Kalıtım, genel bir özellikleri içeren super class'tan yeni bir daha spefisifik özellikleri olan class'lar üretilmesidir. Yukarıdaki basitçe örnekte: KareEv ve UcgenEv sub classları Ev class'ının özelliklerini miras alarak kendilerine özgü özellikleri ek olarak içermektedir.



Nesneye dayalı programda kalıtım ile kulanılan bir unsur da polymorphism'dir. Poly, birden çok anlamına gelmektedir. Polymorphism da çok şekillilik anlamına gelmektedir.Kelime anlamını verdiğimiz polymorphism, super class'a ait bir işlevin sub class'larda kendine özgü kullanılarak farklı değerler üretmesini sağlamaktır. Yani aynı alan fonksiyonunda farklı işlemleri gerçekleştirerek kendine ait sub class'a uygun değer döndürülmesidir.



Override ve Overloading


Override ve overloading unsurlarından da bahsedeceğim.


Ovveride, Kalıtım aldığı ana sınıftaki alınan bir özelliği üzerini yazarak
değiştirilmesi işlemidir.


Overloading, aynı isme sahip ama farklı sayıda ve farklı parametre türü alan fonksiyonun farklı amaca uygun kullanılmasıdır.



Inheritence ve polymorpism arasındaki fark nedir?



Kalıtım, super class'ın özelliklerini alan yeni sub class'lar türetilmesidir.
Polimorfizm temelde birden fazla class için ortak bir işlev yada kullanımdır.

Kalıtım temelde sınıflarda uygulanır.
Polimorfizm işlev / yöntemler üzerinde uygulanmaktadır.

Kalıtım, OOP'de yeniden kullanılabilirlik kavramını desteklemek ve kod uzunluğunu azaltmak için kullanılmaktadır. Polymorphism, nesnenin, derleme zamanında (aşırı yükleme) yanı sıra çalışma süresinin (geçersiz kılınması) ne zaman çağrılabileceği işlevin hangi işlevin yapılmasını kararlaştırılmasına izin verir.



İyi çalışmalar.