Kalıtım programlamadaki temel kavramlardan biridir nesne yönelimli. Bir sınıfın başka bir sınıfın özelliklerini ve yöntemlerini devralmasına izin verir.
Basit miras
Basit kalıtım, bir sınıfın yalnızca özellikleri ve yöntemleri bir üst sınıftan miras almasıdır. “Hayvan” adında bir ebeveyn sınıfınız ve “Köpek” adında bir alt sınıfınız olduğunu hayal edin. "Köpek" sınıfı, diğerlerinin yanı sıra "yemek", "uyku", "nefes alma" gibi "Hayvan" sınıfının yöntem ve özelliklerini miras alacaktır.
çoklu kalıtım
Çoklu kalıtım, bir sınıfın birden fazla ebeveyn sınıftan özellik ve yöntemleri devralmasıdır. Başka bir deyişle, bir alt sınıfın birden fazla ebeveyn sınıfı olabilir. Bu tür kalıtım C++ gibi bazı programlama dillerinde mümkündür ancak Java gibi diğerlerinde mümkün değildir.
Neden tüm programlama dillerinde çoklu kalıtıma izin verilmiyor?
Çoklu kalıtım belirsizlik sorunlarına yol açabilir. Başka bir deyişle, iki ebeveyn sınıfın aynı ada sahip yöntemleri veya özellikleri varsa, bu yöntem veya özelliklerden hangisinin alt sınıf için kullanılacağı açık olmayabilir. Bu nedenle bazı programlama dilleri çoklu kalıtıma izin vermemektedir.
Çoklu kalıtımı destekleyen programlama dillerinin listesi:
- C++
- Python
- Ruby
Çoklu kalıtımı desteklemeyen programlama dillerinin listesi:
- Java
- C#
- PHP
Sonuç olarak, basit kalıtım ve çoklu kalıtım, nesne yönelimli programlamadaki iki temel kavramdır. Basit kalıtım, bir alt sınıfın yalnızca bir üst sınıftan özellik ve yöntemleri miras alabileceği anlamına gelirken, çoklu miras, bir alt sınıfın birden fazla üst sınıftan özellik ve yöntemleri devralabileceği anlamına gelir. Yöntem ve özelliklerdeki olası belirsizlik nedeniyle tüm programlama dillerinin çoklu kalıtıma izin vermediğini unutmamak önemlidir.
Nesne yönelimli programlamadaki bu iki anahtar kavram arasındaki farkı anladığınızdan emin olun!
Ben teknoloji ve DIY konusunda tutkulu bir bilgisayar mühendisi olan Sebastián Vidal. Üstelik ben yaratıcıyım tecnobits.com, teknolojiyi herkes için daha erişilebilir ve anlaşılır kılmak amacıyla eğitimler paylaştığım yer.