- Kalıtımın özellikleri
- hiyerarşi
- Polimorfizm
- Miras türleri
- Eşsiz miras
- Çok seviyeli kalıtım
- Hiyerarşik miras
- Hibrit miras
- Çoklu miras
- Temel sınıftan kalıtım türleri
- Kamu mirası
- Korumalı miras
- Özel miras
- Örnekler
- Python örneği
- C ++ 'da örnek
- Referanslar
Nesne içinde miras - yönelimli programlama özgü genel bir hiyerarşi içinde nesneleri düzenlemek için kullanılan bir yöntemdir. Bu, bir sınıfı başka bir sınıfa genişletmek için kullanılan ve benzer bir yürütmeyi koruyan alettir.
Çoğu sınıfa dayalı nesne yönelimli dilde, kalıtım yoluyla oluşturulan ve alt nesne olarak adlandırılan bir nesne, ana nesnenin tüm özelliklerini ve davranışlarını alır.
Nesne yöneliminde kalıtımın basit kanıtı. Kaynak: Pluke / CC0 Creative Commons CC0 1.0 Evrensel Kamu Alanı
Dolayısıyla farklı sınıflar arasındaki ilişkiyi temsil eden bir niteliktir. Miras, bir sınıfın başka bir sınıfla aynı davranışa sahip olmasına ve bu davranışı belirli ihtiyaçlar için özel bir eylem sağlamak üzere genişletmesine veya uyarlamasına izin verir.
Kalıtım, çalışma biçiminde bazı farklılıkları ve bazı benzerlikleri olan nesnelerin temsil edilmesine yardımcı olabilir. Nesnelerin sahip olduğu tüm işlevselliği bir temel sınıfa koyabilir ve ardından kendi özel işlevselliğinizle bir veya daha fazla alt sınıf tanımlayabilirsiniz.
Kalıtımın özellikleri
Kalıtım, mevcut sınıflardan yeni bir sınıf tanımlamak için kullanılan nesne yönelimli programlamanın temel özelliklerinden biridir.
Yani yeni sınıflar, yeni özellikler ekleyerek mevcut temel sınıflardan türetilebilir. Sıfırdan yazmak zorunda değilsin. Bu nedenle, miras, mevcut kodu kolayca yeniden kullanmanın bir yolunu sağlar.
Zaten istediğiniz her şeyi yapan bir sınıfınız varsa, davranışlarından bazılarının kısmen geçersiz kılındığı veya belki bazı yeni işlevlerin eklendiği bir alt sınıf oluşturabilirsiniz.
Türetilmiş bir sınıf, aşağıdakiler dışında temel sınıfın tüm yöntemlerini miras alır:
- Temel sınıfın oluşturucuları, yıkıcıları ve kopya oluşturucuları.
- Operatörler temel sınıftan aşırı yüklendi.
- Temel sınıf dostu işlevler.
hiyerarşi
Bir soy ağacının yaptığı gibi, miras, bir sınıflar hiyerarşisi oluşturmaya hizmet eder. Bir temel sınıf için belirlenen özniteliklerin türetilmiş sınıfta otomatik olarak mevcut olacağına dikkat etmek önemlidir. Ayrıca, temel sınıf için yöntemler türevler için de çalışacaktır.
Bir sınıfın, miras aldığı sınıfın bir alt sınıfı olduğu söylenir. Öte yandan, bu sınıf sizin süper sınıfınız olacak. En genel sınıf, hiyerarşinin tabanında olduğu için temel sınıf olarak adlandırılabilir.
Polimorfizm
Devralma, statik türlerin olduğu bazı dillerde çok popülerdir, çünkü programcının statik türün bazı kısıtlamalarından kaçınmasına izin verir.
Başka bir nesneden miras alan bir nesne, bu nesnenin bir alt türü olarak kabul edilir. Bir örnek, her biri "kişiden" miras alınan "eğitmen" ve "öğrenci" nesneleri olabilir.
Eğitmen ve öğrenci aynı kişi tipindeyse, kişi türünü parametre olarak kabul eden ve eğitmen ve öğrenci nesneleri üzerinde çalışan bir işlev yazabilirsiniz, çünkü her ikisi de kişi mirasçılarıdır.
Miras türleri
Eşsiz miras
Türetilmiş bir sınıf, tek bir temel sınıfın özelliklerini ve davranışını miras aldığında. Yani, bir sınıf yalnızca bir diğer sınıfa uzanır.
Çok seviyeli kalıtım
Türetilmiş bir sınıftan miras alabileceğiniz gadget'ı ifade eder ve bu türetilmiş sınıfı yeni bir sınıf için temel sınıf yapar. Yani, türetilmiş bir sınıf başka bir türetilmiş sınıftan oluşturulduğunda ortaya çıkar.
Hiyerarşik miras
Bu kalıtımda, birçok alt sınıf tek bir sınıftan miras alır. Yani, tek bir temel sınıf birden fazla türetilmiş sınıf tarafından miras alındığında olur.
Hibrit miras
Önceki üç kalıtımdan herhangi biri birleştirildiğinde (tek, hiyerarşik ve çok düzeyli) ortaya çıkan kalıtımdır.
Çoklu miras
Bir sınıf birden fazla üst sınıftan miras aldığında kalıtım rakamına karşılık gelir. Bu tür kalıtımın dezavantajı, türetilmiş sınıfın iki temel sınıfa sahip olduğu bağımlılığı idare etmesi gerekmesidir.
Öte yandan, bu tür miras, programcıların birden çok sınıfın yönlerini ve bunlara karşılık gelen hiyerarşileri birleştiren sınıflar oluşturmasına olanak tanır.
Temel sınıftan kalıtım türleri
Kamu mirası
Bir sınıf genel temel sınıftan türetildiğinde, temel sınıfın public üyeleri türetilmiş sınıfın genel üyeleri olur ve temel sınıfın korumalı üyeleri türetilmiş sınıfın korumalı üyeleri olur.
Bir üst sınıfın özel üyelerine hiçbir zaman doğrudan türetilmiş bir sınıftan erişilemez, ancak temel sınıfın genel ve korumalı üyelerine yapılan çağrılar yoluyla erişilebilir.
Korumalı miras
Korumalı bir üst sınıftan miras alan bir sınıf oluşturulduğunda, bu üst sınıfın hem genel hem de korunan üyeleri türetilmiş sınıfın korumalı üyeleri haline gelecektir.
Özel miras
Özel bir üst sınıftan bir alt sınıf oluşturulduğunda, bu üst sınıfın genel ve korumalı üyeleri, alt sınıfın özel üyeleri olur.
Örnekler
Python örneği
Miras ilkesinin nasıl çalıştığını göstermek için Python programlama dilinde robotları veya daha iyi bir robot sınıfını alacağız. Bunu yapmak için, Robot üst sınıfından türetilen RobotMédico (PhysicianRobot) adlı bir sınıf belirtilecektir.
RobotMédico sınıfının koduna bakarsanız, bu sınıfta hiçbir özniteliğin veya yöntemin tanımlanmadığını görebilirsiniz.
RobotMedico sınıfı, Robot'un bir alt sınıfı olduğundan, bu durumda hem __init__ hem de say_hi yöntemlerini miras alır. Bu yöntemlerin devralınması, RobotMédico sınıfında tanımlanmış gibi kullanılabilecekleri anlamına gelir.
Bir RobotMedico örneği oluşturulduğunda, __init__ işlevi de bir ad niteliği oluşturur. Say_hi yöntemi, önceki kodun sonucunda görülebileceği gibi RobotMédico'nun "y" nesnesine uygulanabilir.
C ++ 'da örnek
Bir sınıf, birden fazla sınıftan miras alabilir; bu, verileri ve işlevleri birden çok üst sınıftan miras alabileceği anlamına gelir. Türetilmiş bir sınıfı tanımlamak için, temel sınıfları belirtmek üzere bir sınıf türetme listesi kullanırsınız.
C ++ 'daki bir sınıf türetme listesi, bir veya daha fazla temel sınıfı adlandırır ve şu biçime sahiptir: sınıf türetilmiş sınıf: erişim tanımlayıcısının genel, korumalı veya özel olduğu ve temel sınıfın olduğu önceden tanımlanmış bir sınıfın adı. Erişim belirticisi kullanılmıyorsa, varsayılan olarak özel alınır.
Üst sınıf "Shape" ve bunun türetilmiş sınıfı "Rectangle" aşağıdaki gibi düşünülebilir:
Yukarıdaki kod derlendiğinde ve yürütüldüğünde, aşağıdaki çıktı oluşur: "Toplam alan: 35".
Referanslar
- Dave Braunschweig (2020). Kalıtım ve Çok Biçimlilik. Rebus Topluluğu. Alınan: press.rebus.community.
- Python Kursu (2020). Kalıtım. Alıntı: python-course.eu.
- Veri Danışmanı (2020). R Kalıtım. Alındığı kaynak: datamentor.io.
- Öğreticiler Noktası (2020). C ++ Kalıtım. Alınan: tutorialspoint.com.
- Net bilgiler (2020). Farklı Kalıtım Türleri. Alınan: net-informations.com.