Anahtar Farkı – OOP'ta Polimorfizm ve Kalıtım
Nesneye Yönelik Programlama (OOP), yazılım geliştirmek için yaygın olarak kullanılır. Birçok programlama dili, nesne yönelimli programlamayı destekler. Nesne yönelimli programlama, sınıfları ve nesneleri kullanarak bir program tasarlamak için kullanılan bir metodolojidir. OOP'deki bir sınıf, bir nesne oluşturmak için bir plandır. Bir sınıfın özellikleri ve yöntemleri vardır. Bir nesne, bir sınıfın bir örneğidir. OOP, Kalıtım, Polimorfizm, Soyutlama ve Kapsülleme gibi dört sütun içerir. Bu makalede, OOP'de Polimorfizm ve Kalıtım arasındaki fark tartışılmaktadır. OOP'de Polimorfizm ve Kalıtım arasındaki temel fark, Polimorfizmin bir nesnenin birden çok şekilde davranma yeteneği olmasıdır ve Kalıtım, mevcut bir sınıfın özelliklerini ve yöntemlerini kullanarak yeni bir sınıf oluşturmaktır.
OOP'de Polimorfizm nedir?
Polimorfizm, çoklu formları belirtmektir. Bir nesnenin birden fazla davranışı olabilir. Polimorfizm iki kategoriye ayrılabilir. Aşırı yüklüyorlar ve geçersiz kılıyorlar.
Aşırı yükleme
Java ile yazılmış aşağıdaki programa bakın.
Şekil 01: Aşırı Yükleme
Yukarıdaki programa göre, A tipi bir nesne oluşturulur. obj.sum()'u çağırırken; sum() yöntemiyle ilgili çıktıyı verecektir. obj.sum(2, 3) çağrılırken; sum(int a, int b) ile ilgili çıktıyı verecektir. Aynı nesnenin duruma göre farklı davranışlar gösterdiği gözlemlenebilir. Aynı ada sahip ancak farklı parametrelere sahip birden fazla yöntem olduğunda aşırı yükleme olarak bilinir. Statik bağlama veya derleme zamanı polimorfizmi olarak da bilinir.
Geçersiz kılma
Başka bir Polimorfizm türü geçersizdir. Java ile yazılmış aşağıdaki programa bakın.
Şekil 02: Geçersiz Kılma
Yukarıdaki programa göre, A sınıfında bir display() yöntemi vardır. B Sınıfı, A sınıfından genişler. Bu nedenle, A sınıfındaki tüm yöntemlere B sınıfı tarafından erişilebilir. Kalıtımdır. Kalıtım kavramı daha sonra açıklanacaktır.
Sınıf B de aynı display() yöntemine sahiptir. A tipinde bir nesne oluştururken ve görüntüleme yöntemini çağırırken, çıktı B'yi verir. A Sınıfı görüntüleme yöntemi, B sınıfı görüntüleme yöntemi tarafından geçersiz kılınır. Yani çıktı B.
Aynı ada ve aynı parametrelere sahip ancak iki farklı sınıfta yöntemler olduğunda ve bunlar kalıtımla bağlantılı olduğunda geçersiz kılma olarak bilinir. Geç bağlama, Dinamik Bağlama, Çalışma Zamanı Polimorfizmi olarak da bilinir. Aşırı yükleme ve geçersiz kılma, Polimorfizm olarak adlandırılır. Nesne Yönelimli Programlamada önemli bir kavramdır.
OOP'de Kalıtım Nedir?
Java ile yazılmış aşağıdaki programa bakın.
Şekil 03: Kalıtım Örneği
Yukarıdaki programa göre, A sınıfının yöntemi toplamı() ve B sınıfının yöntemi alt() vardır.
A sınıfının sum() yöntemi, Extend anahtar sözcüğü kullanılarak B sınıfında kullanılabilir. Yeni bir sınıf oluşturmak için mevcut bir sınıftaki özelliklerin ve yöntemlerin yeniden kullanılması, Kalıtım olarak bilinir. B sınıfında sum() yöntemi bile yok; A sınıfından miras alınır. Kalıtım, kodun yeniden kullanılabilirliği için yararlıdır. Eski sınıfa temel sınıf, üst sınıf veya ana sınıf denir. Türetilmiş sınıfa alt sınıf veya alt sınıf denir.
Miras Türleri
Çeşitli miras türleri vardır. Bunlar Tek Düzeyli Kalıtım, Çok Düzeyli Kalıtım, Çoklu Kalıtım, Hiyerarşik Kalıtım ve Hibrit Kalıtımdır.
Tek Kalıtım
Tek Kalıtımda, bir süper sınıf ve bir alt sınıf vardır. A sınıfı üst sınıf ve B sınıfı alt sınıf ise, A sınıfının tüm özelliklerine ve yöntemlerine B sınıfı tarafından erişilebilir. Yalnızca bir düzey vardır; bu nedenle tek seviyeli kalıtım olarak adlandırılır.
Çok Düzeyli Kalıtım
Çok Düzeyli Kalıtımda üç sınıf düzeyi vardır. Ara sınıf, süper sınıftan miras alır. Alt sınıf, ara sınıftan miras alır. A, B ve C olmak üzere üç sınıf varsa ve A süper sınıf ve B ara sınıftır. O zaman B, A'dan miras alır ve C, B'den miras alır, bu Çok Düzeyli bir Kalıtımdır.
Çoklu Miras
Çoklu Kalıtımda, birçok süper sınıf ve bir alt sınıf vardır. A, B, C ve D alt sınıf olarak adlandırılan üç süper sınıf varsa, o zaman D sınıfı A, B ve C'den miras alabilir. C++ programlama dilinde Çoklu Kalıtım desteklenir. Java veya C gibi programlama dillerinde desteklenmez. Bu dillerde Çoklu Kalıtım uygulamak için arabirimler kullanılır.
Hiyerarşik Miras
Süper sınıflar olarak A adlı sınıflar varsa ve B, C alt sınıflarsa, bu alt sınıflar A sınıfının özelliklerini ve yöntemlerini miras alabilir. Bu tür kalıtım türü Hiyerarşik Kalıtım olarak bilinir.
Hibrit Kalıtım
Hibrit Kalıtım olarak bilinen başka bir özel miras türü daha vardır. Çok seviyeli ve çoklu kalıtımın bir birleşimidir. A, B, C ve D sınıflarsa ve B, A'dan miras alıyorsa ve D hem B hem de C'den miras alıyorsa, bu bir Hibrit mirastır.
OOP'de Polimorfizm ve Kalıtım Arasındaki Benzerlikler Nelerdir?
Her ikisi de Nesne Yönelimli Programlamanın kavramlarıdır
OOP'de Polimorfizm ve Kalıtım Arasındaki Fark Nedir?
Polimorfizm vs Kalıtım OOP |
|
Polimorfizm, bir nesnenin birden çok şekilde davranma yeteneğidir. | Kalıtım, mevcut bir sınıfın özelliklerini ve yöntemlerini kullanarak yeni bir sınıf oluşturmaktır. |
Kullanım | |
Polimorfizm, nesnelerin derleme zamanında ve çalışma zamanında hangi yöntem biçimini çağırması için kullanılır. | Kalıtım, kodun yeniden kullanılabilirliği için kullanılır. |
Uygulama | |
Polimorfizm yöntemlerde uygulanır. | Kalıtım, sınıflarda uygulanır. |
Kategori | |
Polimorfizm, aşırı yükleme ve geçersiz kılma olarak ikiye ayrılabilir. | Kalıtım, tek seviyeli, çok seviyeli, hiyerarşik, hibrit ve çoklu kalıtım olarak ayrılabilir. |
Özet – OOP'ta Polimorfizm ve Kalıtım
Polimorfizm ve Kalıtım, Nesne Yönelimli Programlamada temel kavramlardır. OOP'de Polimorfizm ve Kalıtım arasındaki fark, Polimorfizmin çoklu formlar için ortak bir arayüz olması ve Kalıtımın mevcut bir sınıfın özelliklerini ve yöntemlerini kullanarak yeni bir sınıf oluşturmak olmasıdır. Her iki kavram da Yazılım Geliştirmede yaygın olarak kullanılmaktadır.
OOP'ta Polimorfizm ve Kalıtım PDF'sini indirin
Bu makalenin PDF sürümünü indirebilir ve alıntı notuna göre çevrimdışı amaçlarla kullanabilirsiniz. Lütfen PDF sürümünü buradan indirin OOP'ta Polimorfizm ve Kalıtım Arasındaki Fark